Уважаемые форумчане! И великие УМЫ!!! Подскажите макрос, который переносил бы таблицу с одного листа (ярлычки датированы), в общий лист, при выборе даты в ЭТОМ общем листе. И еще вопрос, а можно ли такой фокус сделать если книга с датированными таблицами находятся в другой папке (директории)? Файл прилагается. Надеюсь на Вашу помощь, думаю и другим участникам будет эта тема интересна... Выложил вопрос в ПланетаЕксель вот ссылка http://www.planetaexcel.ru/forum....sloviyu
Уважаемые форумчане! И великие УМЫ!!! Подскажите макрос, который переносил бы таблицу с одного листа (ярлычки датированы), в общий лист, при выборе даты в ЭТОМ общем листе. И еще вопрос, а можно ли такой фокус сделать если книга с датированными таблицами находятся в другой папке (директории)? Файл прилагается. Надеюсь на Вашу помощь, думаю и другим участникам будет эта тема интересна... Выложил вопрос в ПланетаЕксель вот ссылка http://www.planetaexcel.ru/forum....sloviyuQwertyBoss
QwertyBoss, код от Kuzmich с планеты рабочий. Подкорректировала его, чтобы брал таблицы из другой книги: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim iName As String If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки If Not Intersect(Target, Range("H1")) Is Nothing Then Application.EnableEvents = False Application.ScreenUpdating = False Dim wb As Workbook Dim pathTbl: pathTbl = "C:\таблицы.xlsx" If Dir(pathTbl) = "" Then MsgBox "Книга " & pathTbl & " не найдена!", _ vbCritical: Application.EnableEvents = True: Exit Sub 'Указать путь к книге с таблицами для копирования Set wb = Workbooks.Open("C:\таблицы.xlsx") iName = CStr(Target) If SheetExist(wb, iName) Then Range("A3").CurrentRegion.Clear With wb.Worksheets(iName) .Range("A3").CurrentRegion.Copy Range("A3") End With End If wb.Close False End If Application.EnableEvents = True End Sub
'функция проверки наличия листа в файле, лист есть - true Function SheetExist(wb As Workbook, iName As String) As Boolean On Error Resume Next With wb.Worksheets(iName): End With SheetExist = (Err = 0) End Function
[/vba]
[offtop]Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах. Кстати, на планете тоже хорошо бы ссылку на кросс дать [/offtop]
QwertyBoss, код от Kuzmich с планеты рабочий. Подкорректировала его, чтобы брал таблицы из другой книги: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim iName As String If Target.Cells.Count > 1 Then Exit Sub 'выделено больше одной ячейки If Not Intersect(Target, Range("H1")) Is Nothing Then Application.EnableEvents = False Application.ScreenUpdating = False Dim wb As Workbook Dim pathTbl: pathTbl = "C:\таблицы.xlsx" If Dir(pathTbl) = "" Then MsgBox "Книга " & pathTbl & " не найдена!", _ vbCritical: Application.EnableEvents = True: Exit Sub 'Указать путь к книге с таблицами для копирования Set wb = Workbooks.Open("C:\таблицы.xlsx") iName = CStr(Target) If SheetExist(wb, iName) Then Range("A3").CurrentRegion.Clear With wb.Worksheets(iName) .Range("A3").CurrentRegion.Copy Range("A3") End With End If wb.Close False End If Application.EnableEvents = True End Sub
'функция проверки наличия листа в файле, лист есть - true Function SheetExist(wb As Workbook, iName As String) As Boolean On Error Resume Next With wb.Worksheets(iName): End With SheetExist = (Err = 0) End Function
[/vba]
[offtop]Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах. Кстати, на планете тоже хорошо бы ссылку на кросс дать [/offtop]Manyasha
Manyasha, Оффтоп: Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах. Кстати, на планете тоже хорошо бы ссылку на кросс дать :)
Обязательно в следующий раз дам. т.к. опыта в этом деле крайне мало у меня:) Дублировать тему не буду больше, теперь я точно знаю что да где:) [moder]А для цитирования пользуйтесь кнопкой "Цитата"
Manyasha, Оффтоп: Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах. Кстати, на планете тоже хорошо бы ссылку на кросс дать :)
Обязательно в следующий раз дам. т.к. опыта в этом деле крайне мало у меня:) Дублировать тему не буду больше, теперь я точно знаю что да где:) [moder]А для цитирования пользуйтесь кнопкой "Цитата"QwertyBoss
Сообщение отредактировал _Boroda_ - Четверг, 29.10.2015, 19:12