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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных на лист из другого файла по условию (Макросы/Sub)
Перенос данных на лист из другого файла по условию
QwertyBoss Дата: Четверг, 29.10.2015, 05:07 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Уважаемые форумчане! И великие УМЫ!!! Подскажите макрос, который переносил бы таблицу с одного листа (ярлычки датированы), в общий лист, при выборе даты в ЭТОМ общем листе. И еще вопрос, а можно ли такой фокус сделать если книга с датированными таблицами находятся в другой папке (директории)? Файл прилагается. Надеюсь на Вашу помощь, думаю и другим участникам будет эта тема интересна... Выложил вопрос в ПланетаЕксель вот ссылка http://www.planetaexcel.ru/forum....sloviyu
К сообщению приложен файл: 6756569.xlsx (91.6 Kb)
 
Ответить
СообщениеУважаемые форумчане! И великие УМЫ!!! Подскажите макрос, который переносил бы таблицу с одного листа (ярлычки датированы), в общий лист, при выборе даты в ЭТОМ общем листе. И еще вопрос, а можно ли такой фокус сделать если книга с датированными таблицами находятся в другой папке (директории)? Файл прилагается. Надеюсь на Вашу помощь, думаю и другим участникам будет эта тема интересна... Выложил вопрос в ПланетаЕксель вот ссылка http://www.planetaexcel.ru/forum....sloviyu

Автор - QwertyBoss
Дата добавления - 29.10.2015 в 05:07
nilem Дата: Четверг, 29.10.2015, 07:42 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
а если формулой
для С5 на листе Общий, например
Код
=ЕСЛИОШИБКА(ДВССЫЛ(ТЕКСТ(H1;"ДД.ММ.ГГГГ")&"!C5");"")


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеа если формулой
для С5 на листе Общий, например
Код
=ЕСЛИОШИБКА(ДВССЫЛ(ТЕКСТ(H1;"ДД.ММ.ГГГГ")&"!C5");"")

Автор - nilem
Дата добавления - 29.10.2015 в 07:42
Manyasha Дата: Четверг, 29.10.2015, 12:39 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
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]
К сообщению приложен файл: 123.rar (54.2 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение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
Дата добавления - 29.10.2015 в 12:39
QwertyBoss Дата: Четверг, 29.10.2015, 13:40 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, огромное спасибо.... Редко прошу помощи, ибо обычно не достучишься...Но Вы с Кузьмичём - исключение. Спс!!!
 
Ответить
СообщениеManyasha, огромное спасибо.... Редко прошу помощи, ибо обычно не достучишься...Но Вы с Кузьмичём - исключение. Спс!!!

Автор - QwertyBoss
Дата добавления - 29.10.2015 в 13:40
QwertyBoss Дата: Четверг, 29.10.2015, 13:47 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha,
Оффтоп:
Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах.
Кстати, на планете тоже хорошо бы ссылку на кросс дать :)

Обязательно в следующий раз дам. т.к. опыта в этом деле крайне мало у меня:) Дублировать тему не буду больше, теперь я точно знаю что да где:)
[moder]А для цитирования пользуйтесь кнопкой "Цитата"


Сообщение отредактировал _Boroda_ - Четверг, 29.10.2015, 19:12
 
Ответить
СообщениеManyasha,
Оффтоп:
Все замечания в исходной теме Вы исправили, это здорово! Но в следующий раз не дублируйте тему в разных разделах.
Кстати, на планете тоже хорошо бы ссылку на кросс дать :)

Обязательно в следующий раз дам. т.к. опыта в этом деле крайне мало у меня:) Дублировать тему не буду больше, теперь я точно знаю что да где:)
[moder]А для цитирования пользуйтесь кнопкой "Цитата"

Автор - QwertyBoss
Дата добавления - 29.10.2015 в 13:47
QwertyBoss Дата: Четверг, 29.10.2015, 19:27 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ОК:)
 
Ответить
СообщениеОК:)

Автор - QwertyBoss
Дата добавления - 29.10.2015 в 19:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных на лист из другого файла по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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