Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование данных из колонок в другой лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из колонок в другой лист (Макросы/Sub)
Копирование данных из колонок в другой лист
Oh_Nick Дата: Суббота, 30.09.2023, 20:01 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
Доброго времени суток!

Может можно и формулами , но для надежности создал здесь тему.

У меня на одном листе заполняются колонки. Как мне сделать чтобы при заполнении этих колонок данные тянулись в лист в эти же колонки и также убирались оттуда ,если будут удаляться на исходном листе в реальном времени? Пример прикрепил.
К сообщению приложен файл: 3271975.xlsx (10.9 Kb)


Сообщение отредактировал Oh_Nick - Суббота, 30.09.2023, 20:01
 
Ответить
СообщениеДоброго времени суток!

Может можно и формулами , но для надежности создал здесь тему.

У меня на одном листе заполняются колонки. Как мне сделать чтобы при заполнении этих колонок данные тянулись в лист в эти же колонки и также убирались оттуда ,если будут удаляться на исходном листе в реальном времени? Пример прикрепил.

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 20:01
WowGun Дата: Суббота, 30.09.2023, 20:18 | Сообщение № 2
Группа: Проверенные
Ранг: Новичок
Сообщений: 27
Репутация: 3 ±
Замечаний: 0% ±

Если не мудрствовать лукаво, то просто копировать по событию Worksheet_Change.


Сообщение отредактировал WowGun - Суббота, 30.09.2023, 20:23
 
Ответить
СообщениеЕсли не мудрствовать лукаво, то просто копировать по событию Worksheet_Change.

Автор - WowGun
Дата добавления - 30.09.2023 в 20:18
Oh_Nick Дата: Суббота, 30.09.2023, 20:32 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
WowGun,

Можете, пожалуйста, в файл прописать как это должно быть.
 
Ответить
СообщениеWowGun,

Можете, пожалуйста, в файл прописать как это должно быть.

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 20:32
i691198 Дата: Суббота, 30.09.2023, 20:35 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 218
Репутация: 85 ±
Замечаний: 0% ±

Если структура по строкам одинаковая на обоих листах, т.е. количество, номенклатура и порядок строк идентичны, то нечего и голову ломать, обычная ссылка типа =Товары!A2. Нет смысла использовать макросы.
 
Ответить
СообщениеЕсли структура по строкам одинаковая на обоих листах, т.е. количество, номенклатура и порядок строк идентичны, то нечего и голову ломать, обычная ссылка типа =Товары!A2. Нет смысла использовать макросы.

Автор - i691198
Дата добавления - 30.09.2023 в 20:35
Oh_Nick Дата: Суббота, 30.09.2023, 20:51 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
i691198, в исходнике не умная таблица
 
Ответить
Сообщениеi691198, в исходнике не умная таблица

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 20:51
Oh_Nick Дата: Суббота, 30.09.2023, 21:03 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
вот оригинал, чтобы полегче было

С листа склад должны тянуться данные в лист Фильтр (колонки там указаны)
К сообщению приложен файл: kniga_ucheta_metalla.xlsm (167.7 Kb)
 
Ответить
Сообщениевот оригинал, чтобы полегче было

С листа склад должны тянуться данные в лист Фильтр (колонки там указаны)

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 21:03
Oh_Nick Дата: Суббота, 30.09.2023, 21:32 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
Есть мысли? %)
 
Ответить
СообщениеЕсть мысли? %)

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 21:32
MikeVol Дата: Суббота, 30.09.2023, 22:07 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Oh_Nick, Доброго времени суток. Ну если
в реальном времени
то вот вам код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Фильтр")
    Dim lr          As Long: lr = Cells(Rows.Count, 3).End(xlUp).Row

    If Not Intersect(Target, Range("C4:C" & lr)) Is Nothing Then
        UpdateValue sh, Target, -2

    ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
    End If

End Sub

Sub UpdateValue(ByRef ws As Worksheet, ByRef Target As Range, ByVal OffsetCol As Long)
    Dim r           As Long: r = Target.Row
    Dim c           As Long: c = Target.Column
    ws.Cells(r, c).Offset(2, OffsetCol).Value = Target.Value
End Sub
[/vba]
Данный код внесите в модуль Листа Склад. Удачи.


Ученик.

Сообщение отредактировал MikeVol - Суббота, 30.09.2023, 22:14
 
Ответить
СообщениеOh_Nick, Доброго времени суток. Ну если
в реальном времени
то вот вам код: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Фильтр")
    Dim lr          As Long: lr = Cells(Rows.Count, 3).End(xlUp).Row

    If Not Intersect(Target, Range("C4:C" & lr)) Is Nothing Then
        UpdateValue sh, Target, -2

    ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
    End If

End Sub

Sub UpdateValue(ByRef ws As Worksheet, ByRef Target As Range, ByVal OffsetCol As Long)
    Dim r           As Long: r = Target.Row
    Dim c           As Long: c = Target.Column
    ws.Cells(r, c).Offset(2, OffsetCol).Value = Target.Value
End Sub
[/vba]
Данный код внесите в модуль Листа Склад. Удачи.

Автор - MikeVol
Дата добавления - 30.09.2023 в 22:07
Oh_Nick Дата: Суббота, 30.09.2023, 22:17 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
MikeVol,

вставил 5 на лист Склад, ничего не появилось на листе Фильтр
К сообщению приложен файл: 1873399.xlsm (162.7 Kb)
 
Ответить
СообщениеMikeVol,

вставил 5 на лист Склад, ничего не появилось на листе Фильтр

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 22:17
MikeVol Дата: Суббота, 30.09.2023, 22:42 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Oh_Nick, А я вот поставил и 6 и есть! Смотрим скриншоты.
К сообщению приложен файл: 9107527.png (13.2 Kb) · 7487759.png (8.8 Kb)


Ученик.
 
Ответить
СообщениеOh_Nick, А я вот поставил и 6 и есть! Смотрим скриншоты.

Автор - MikeVol
Дата добавления - 30.09.2023 в 22:42
Oh_Nick Дата: Суббота, 30.09.2023, 22:47 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
MikeVol, перепроверил, все ок!

А как сделать, чтобы вставлял с начала колонки? И добавьте пожалуйста добавление колонки Категория .Спасибо большое заранее!

По поводу Категория:
Вот как ее правильно отредачить?

[vba]
Код
ElseIf Not Intersect(Target, Range("H4:H" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
[/vba]

Target,-7 - что значит?


Сообщение отредактировал Oh_Nick - Суббота, 30.09.2023, 22:54
 
Ответить
СообщениеMikeVol, перепроверил, все ок!

А как сделать, чтобы вставлял с начала колонки? И добавьте пожалуйста добавление колонки Категория .Спасибо большое заранее!

По поводу Категория:
Вот как ее правильно отредачить?

[vba]
Код
ElseIf Not Intersect(Target, Range("H4:H" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
[/vba]

Target,-7 - что значит?

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 22:47
Oh_Nick Дата: Суббота, 30.09.2023, 23:28 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
MikeVol,

Вот этот кусок как правильно отредактировать, чтобы тянулось правильно в колонки на листе Фильтр

[vba]
Код
If Not Intersect(Target, Range("C4:C" & lr)) Is Nothing Then
        UpdateValue sh, Target, -2

    ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3
        
    ElseIf Not Intersect(Target, Range("H4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
    End If
[/vba]
 
Ответить
СообщениеMikeVol,

Вот этот кусок как правильно отредактировать, чтобы тянулось правильно в колонки на листе Фильтр

[vba]
Код
If Not Intersect(Target, Range("C4:C" & lr)) Is Nothing Then
        UpdateValue sh, Target, -2

    ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3
        
    ElseIf Not Intersect(Target, Range("H4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -7
    End If
[/vba]

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 23:28
Oh_Nick Дата: Суббота, 30.09.2023, 23:42 | Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
MikeVol,

Разобрался!) Теперь можно сделать, чтобы новые строчки добавлялись в колонку сверху на листе Фильтр? Начиная с 6 строки и так вниз Решил просто захайдить строчки, чтобы не париться)

[vba]
Код
ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3
        
    ElseIf Not Intersect(Target, Range("H4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6
    End If
[/vba]


Сообщение отредактировал Oh_Nick - Суббота, 30.09.2023, 23:47
 
Ответить
СообщениеMikeVol,

Разобрался!) Теперь можно сделать, чтобы новые строчки добавлялись в колонку сверху на листе Фильтр? Начиная с 6 строки и так вниз Решил просто захайдить строчки, чтобы не париться)

[vba]
Код
ElseIf Not Intersect(Target, Range("E4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -3
        
    ElseIf Not Intersect(Target, Range("H4:E" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("I4:I" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("J4:J" & lr)) Is Nothing Then
        UpdateValue sh, Target, -5

    ElseIf Not Intersect(Target, Range("L4:L" & lr)) Is Nothing Then
        UpdateValue sh, Target, -6
    End If
[/vba]

Автор - Oh_Nick
Дата добавления - 30.09.2023 в 23:42
Oh_Nick Дата: Воскресенье, 01.10.2023, 18:02 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
Подскажите такой момент:

А если строчки копируются уже с других листов и вставляются, то как код отредактировать, чтобы переносил. Я так понимаю, что событие в ячейке это когда происходит действие в самой ячейке, а когда на нее что то накладывается , то это не событие? Помогите отредактировать для такого процесса код.

На листе номенклатура мы заполняем строчку и нажимаем два раза Выбрать -> Переходим на лист Приход и нажимаем два раза Провести -> Строчка отобразилась на листе Склад и должна также отобразиться на листе Фильтр (колонки которые должны отобразиться указаны).
Пример и файл прикрепил
К сообщению приложен файл: kniga_ucheta_metalla_2.xlsm (212.0 Kb) · 7532961.jpg (54.3 Kb) · 6825349.jpg (34.5 Kb) · 3654624.jpg (72.0 Kb) · 7467019.jpg (64.4 Kb)
 
Ответить
СообщениеПодскажите такой момент:

А если строчки копируются уже с других листов и вставляются, то как код отредактировать, чтобы переносил. Я так понимаю, что событие в ячейке это когда происходит действие в самой ячейке, а когда на нее что то накладывается , то это не событие? Помогите отредактировать для такого процесса код.

На листе номенклатура мы заполняем строчку и нажимаем два раза Выбрать -> Переходим на лист Приход и нажимаем два раза Провести -> Строчка отобразилась на листе Склад и должна также отобразиться на листе Фильтр (колонки которые должны отобразиться указаны).
Пример и файл прикрепил

Автор - Oh_Nick
Дата добавления - 01.10.2023 в 18:02
MikeVol Дата: Воскресенье, 01.10.2023, 19:54 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 315
Репутация: 61 ±
Замечаний: 0% ±

Excel LTSC 2021 EN
Oh_Nick, Тогда тот код и не нужен (только зря время потерял с вами в субботний вечер). Смотрите файл, код в модуле листа Приход (точнее дописал к существующему коду). В следуйщий раз свою хотелку соберите в один текст чоткий, чтоб не пришлось время зря тратить. Удачи.
P.S. Меня нет на сегодня больше.
UPDATE! Соблюдайте все шаги что вы описали
На листе номенклатура мы заполняем строчку и нажимаем два раза Выбрать -> Переходим на лист Приход и нажимаем два раза Провести -> Строчка отобразилась на листе Склад и должна также отобразиться на листе Фильтр (колонки которые должны отобразиться указаны).

и будет вам счастье!
К сообщению приложен файл: 01_10_2023_exw_kopirovanie_dan.xlsm (132.1 Kb)


Ученик.

Сообщение отредактировал MikeVol - Воскресенье, 01.10.2023, 19:57
 
Ответить
СообщениеOh_Nick, Тогда тот код и не нужен (только зря время потерял с вами в субботний вечер). Смотрите файл, код в модуле листа Приход (точнее дописал к существующему коду). В следуйщий раз свою хотелку соберите в один текст чоткий, чтоб не пришлось время зря тратить. Удачи.
P.S. Меня нет на сегодня больше.
UPDATE! Соблюдайте все шаги что вы описали
На листе номенклатура мы заполняем строчку и нажимаем два раза Выбрать -> Переходим на лист Приход и нажимаем два раза Провести -> Строчка отобразилась на листе Склад и должна также отобразиться на листе Фильтр (колонки которые должны отобразиться указаны).

и будет вам счастье!

Автор - MikeVol
Дата добавления - 01.10.2023 в 19:54
Oh_Nick Дата: Воскресенье, 01.10.2023, 20:15 | Сообщение № 16
Группа: Проверенные
Ранг: Обитатель
Сообщений: 445
Репутация: 8 ±
Замечаний: 20% ±

Excel 2019
MikeVol, брависсимо, благодарю!!! hands
 
Ответить
СообщениеMikeVol, брависсимо, благодарю!!! hands

Автор - Oh_Nick
Дата добавления - 01.10.2023 в 20:15
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из колонок в другой лист (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!