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

Вход

Регистрация

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

 

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

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из одной вкладки в другую... (Макросы/Sub)
Копирование данных из одной вкладки в другую...
Makar1986 Дата: Четверг, 22.06.2017, 13:52 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте, пример заполнения таблицы на вкладке ТР приложил. Начал писать макрос. Добился что находит название месяца, не могу не как до думаться как делать чтобы данные копировались согласно месяцу и кол-ву ТР в месяце. Заранее спасибо
[vba]
Код
Sub Ren()
Dim CompareRange As Variant, x As Variant, y As Variant, month As Variant
    ' Назначьте переменной CompareRange диапазон, с которым
    ' нужно сравнить выделенный диапазон.
     Set CompareRange = Workbooks("Книга 2-1"). _
      Worksheets("Освещение").Range("E4:P4")
    Set month = Workbooks("Книга 2-1"). _
      Worksheets("ТР").Range("E2")
    '
    ' В следующем цикле каждая выделенная ячейка сравнивается
    ' с каждой ячейкой из диапазона CompareRange.
    For Each x In month
        For Each y In CompareRange
        If x = y Then x.Range("P14").Value = x
        Next y
    Next x
End Sub
[/vba]
К сообщению приложен файл: _2-1.xls(68Kb)
 
Ответить
СообщениеЗдравствуйте, пример заполнения таблицы на вкладке ТР приложил. Начал писать макрос. Добился что находит название месяца, не могу не как до думаться как делать чтобы данные копировались согласно месяцу и кол-ву ТР в месяце. Заранее спасибо
[vba]
Код
Sub Ren()
Dim CompareRange As Variant, x As Variant, y As Variant, month As Variant
    ' Назначьте переменной CompareRange диапазон, с которым
    ' нужно сравнить выделенный диапазон.
     Set CompareRange = Workbooks("Книга 2-1"). _
      Worksheets("Освещение").Range("E4:P4")
    Set month = Workbooks("Книга 2-1"). _
      Worksheets("ТР").Range("E2")
    '
    ' В следующем цикле каждая выделенная ячейка сравнивается
    ' с каждой ячейкой из диапазона CompareRange.
    For Each x In month
        For Each y In CompareRange
        If x = y Then x.Range("P14").Value = x
        Next y
    Next x
End Sub
[/vba]

Автор - Makar1986
Дата добавления - 22.06.2017 в 13:52
Kuzmich Дата: Четверг, 22.06.2017, 14:18 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 275
Репутация: 50 ±
Замечаний: 0% ±

Excel 2003
В модуль листа ТР макрос, который срабатывает при выборе месяца в ячейке Е2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2")) Is Nothing Then
        Application.EnableEvents = False
Dim i As Long
Dim iLR As Long
Dim FoundObject As Range
   iLR = Cells(Rows.Count, "A").End(xlUp).Row
   With Worksheets("Кол-во часов")
      For i = 7 To iLR
        Set FoundObject = .Columns(2).Find(Cells(i, "A"), , xlValues, xlWhole)
        If Not FoundObject Is Nothing Then
          Cells(i, "F") = FoundObject.Offset(, 2)
        End If
      Next
   End With
    End If
    Application.EnableEvents = True
End Sub
[/vba]
Убрать пробел в конце строки Приточная вентиляция с щитом управления П4
 
Ответить
СообщениеВ модуль листа ТР макрос, который срабатывает при выборе месяца в ячейке Е2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2")) Is Nothing Then
        Application.EnableEvents = False
Dim i As Long
Dim iLR As Long
Dim FoundObject As Range
   iLR = Cells(Rows.Count, "A").End(xlUp).Row
   With Worksheets("Кол-во часов")
      For i = 7 To iLR
        Set FoundObject = .Columns(2).Find(Cells(i, "A"), , xlValues, xlWhole)
        If Not FoundObject Is Nothing Then
          Cells(i, "F") = FoundObject.Offset(, 2)
        End If
      Next
   End With
    End If
    Application.EnableEvents = True
End Sub
[/vba]
Убрать пробел в конце строки Приточная вентиляция с щитом управления П4

Автор - Kuzmich
Дата добавления - 22.06.2017 в 14:18
Makar1986 Дата: Четверг, 22.06.2017, 14:47 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, Я похоже совсем профан в екселе, вставляю в модуль листа и не чего не работает. Я похоже делаю что то не то.... Спасибо
 
Ответить
СообщениеKuzmich, Я похоже совсем профан в екселе, вставляю в модуль листа и не чего не работает. Я похоже делаю что то не то.... Спасибо

Автор - Makar1986
Дата добавления - 22.06.2017 в 14:47
Kuzmich Дата: Четверг, 22.06.2017, 15:22 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 275
Репутация: 50 ±
Замечаний: 0% ±

Excel 2003
Макрос, как пример подтягивания данных с другого листа, в данном случае количество часов.
На листе ТР очистите столбец с количеством часов и выберите какой-либо месяц в ячейке Е2
 
Ответить
СообщениеМакрос, как пример подтягивания данных с другого листа, в данном случае количество часов.
На листе ТР очистите столбец с количеством часов и выберите какой-либо месяц в ячейке Е2

Автор - Kuzmich
Дата добавления - 22.06.2017 в 15:22
Makar1986 Дата: Пятница, 23.06.2017, 06:27 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, Доброе утро, извените что задаю еще вопрос. Как можно чтобы с вкладке "Освещения" копировалось то наименование механизма согласно которому есть в этот месяц ТР, а если нету ТР то не копировались. Спасибо большое.
 
Ответить
СообщениеKuzmich, Доброе утро, извените что задаю еще вопрос. Как можно чтобы с вкладке "Освещения" копировалось то наименование механизма согласно которому есть в этот месяц ТР, а если нету ТР то не копировались. Спасибо большое.

Автор - Makar1986
Дата добавления - 23.06.2017 в 06:27
Kuzmich Дата: Пятница, 23.06.2017, 11:40 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 275
Репутация: 50 ±
Замечаний: 0% ±

Excel 2003
Цитата
с вкладки "Освещение" копировалось то наименование механизма согласно которому есть в этот месяц ТР

В модуль листа ТР вставьте следующий код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2")) Is Nothing Then
        Application.EnableEvents = False
Dim i As Long
Dim iLR As Long
Dim iLR_осв As Long
Dim FoundMonth As Range
     iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1
   If iLR < 7 Then iLR = 7
   Range("A7:A" & iLR).ClearContents   'очищаем столбец А
   With Worksheets("Освещение")
   ' ищем столбец с месяцем
     Set FoundMonth = .Rows(4).Find(Target, , xlValues, xlWhole)
     If Not FoundMonth Is Nothing Then
           iLR_осв = .Cells(.Rows.Count, "B").End(xlUp).Row
           iLR = 7
        For i = 8 To iLR_осв  'цикл по столбцу с найденным месяцем
          If InStr(1, .Cells(i, FoundMonth.Column), "ТР") <> 0 Then
               Cells(iLR, "A") = .Cells(i, "B") 'оборудование, где есть ТР
               iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1
          End If
        Next
     End If
   End With
    End If
    Application.EnableEvents = True
End Sub
[/vba]
Код срабатывает при изменении месяца в ячейке Е2. Удачи!
 
Ответить
Сообщение
Цитата
с вкладки "Освещение" копировалось то наименование механизма согласно которому есть в этот месяц ТР

В модуль листа ТР вставьте следующий код
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E2")) Is Nothing Then
        Application.EnableEvents = False
Dim i As Long
Dim iLR As Long
Dim iLR_осв As Long
Dim FoundMonth As Range
     iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1
   If iLR < 7 Then iLR = 7
   Range("A7:A" & iLR).ClearContents   'очищаем столбец А
   With Worksheets("Освещение")
   ' ищем столбец с месяцем
     Set FoundMonth = .Rows(4).Find(Target, , xlValues, xlWhole)
     If Not FoundMonth Is Nothing Then
           iLR_осв = .Cells(.Rows.Count, "B").End(xlUp).Row
           iLR = 7
        For i = 8 To iLR_осв  'цикл по столбцу с найденным месяцем
          If InStr(1, .Cells(i, FoundMonth.Column), "ТР") <> 0 Then
               Cells(iLR, "A") = .Cells(i, "B") 'оборудование, где есть ТР
               iLR = Cells(Rows.Count, "A").End(xlUp).Row + 1
          End If
        Next
     End If
   End With
    End If
    Application.EnableEvents = True
End Sub
[/vba]
Код срабатывает при изменении месяца в ячейке Е2. Удачи!

Автор - Kuzmich
Дата добавления - 23.06.2017 в 11:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование данных из одной вкладки в другую... (Макросы/Sub)
Страница 1 из 11
Поиск:

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