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

Вход

Регистрация

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

 

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

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

Excel 2010
Доброго времени суток!
Скажу сразу, ВПР не подходит, нужен макрос
В одной книге (2015_12_17_База.xlsx) необходимо найти в колонке "А" значение например "А зори здесь тихие" (А8) и скопировать значение ячейки "35004,558" (D8), это значение необходимо вставить в другую Книгу (Периодика.xlsm) на лист "Периодика", где в колонке "В" найти такое же значение "А зори здесь тихие" (В4) и вставить значение "35004,558" рядом в ячейку "С4" и закрасить его красным цветом.
Если значение не найдено, перейти к следующей ячейке. Когда дошли до конца таблицы, закрыть книгу 2015_12_17_База.xlsx

Еще один важный момент, название файла 2015_12_17_База.xlsx отличается датами, тоесть два файла будут всегда в одной папке, но название будет иметь такой формат "ГГГГ_ММ_ДД_База.xlsx"
К сообщению приложен файл: 500.zip (14.9 Kb)


Сообщение отредактировал akaDemik - Четверг, 17.12.2015, 18:22
 
Ответить
СообщениеДоброго времени суток!
Скажу сразу, ВПР не подходит, нужен макрос
В одной книге (2015_12_17_База.xlsx) необходимо найти в колонке "А" значение например "А зори здесь тихие" (А8) и скопировать значение ячейки "35004,558" (D8), это значение необходимо вставить в другую Книгу (Периодика.xlsm) на лист "Периодика", где в колонке "В" найти такое же значение "А зори здесь тихие" (В4) и вставить значение "35004,558" рядом в ячейку "С4" и закрасить его красным цветом.
Если значение не найдено, перейти к следующей ячейке. Когда дошли до конца таблицы, закрыть книгу 2015_12_17_База.xlsx

Еще один важный момент, название файла 2015_12_17_База.xlsx отличается датами, тоесть два файла будут всегда в одной папке, но название будет иметь такой формат "ГГГГ_ММ_ДД_База.xlsx"

Автор - akaDemik
Дата добавления - 17.12.2015 в 18:18
Kuzmich Дата: Четверг, 17.12.2015, 23:58 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Из файла 2015_12_17_База.xlsx на лист Периодика надо переносить
общий вес по книгам и журналам?
 
Ответить
СообщениеИз файла 2015_12_17_База.xlsx на лист Периодика надо переносить
общий вес по книгам и журналам?

Автор - Kuzmich
Дата добавления - 17.12.2015 в 23:58
akaDemik Дата: Пятница, 18.12.2015, 10:40 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich, не совсем понял вопрос...
надо из файла *_База.xlsx перенести значения столбца D в другой файл Периодика.xlsm(где будет находится макрос), в столбец С, но т.к. строки у этих 2 файлов не совпадают, необходимо заполнять их построчно. Например когда макрос доходит до значения "Парфюмер", которого нет во втором файле, надо пропускать и переходить на другую строчку. Тоже самое и со вторым файлом, в нем есть значение "Космо", которого нет в первом, его пропускаем и переходим к следующей строчке
 
Ответить
СообщениеKuzmich, не совсем понял вопрос...
надо из файла *_База.xlsx перенести значения столбца D в другой файл Периодика.xlsm(где будет находится макрос), в столбец С, но т.к. строки у этих 2 файлов не совпадают, необходимо заполнять их построчно. Например когда макрос доходит до значения "Парфюмер", которого нет во втором файле, надо пропускать и переходить на другую строчку. Тоже самое и со вторым файлом, в нем есть значение "Космо", которого нет в первом, его пропускаем и переходим к следующей строчке

Автор - akaDemik
Дата добавления - 18.12.2015 в 10:40
Kuzmich Дата: Пятница, 18.12.2015, 11:07 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
У вас в файле Периодика есть список книг, которые надо найти в Базе и
подтянуть значения веса(кг). Макросом проходим циклом по этому списку,
в котором есть ячейки Книги и Журналы, по которым в базе есть цифры.
Вот эти цифры нужны вам в файле Периодика?
 
Ответить
СообщениеУ вас в файле Периодика есть список книг, которые надо найти в Базе и
подтянуть значения веса(кг). Макросом проходим циклом по этому списку,
в котором есть ячейки Книги и Журналы, по которым в базе есть цифры.
Вот эти цифры нужны вам в файле Периодика?

Автор - Kuzmich
Дата добавления - 18.12.2015 в 11:07
akaDemik Дата: Пятница, 18.12.2015, 11:48 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вот эти цифры нужны вам в файле Периодика?

да, нужно скопировать только цифры по условию которое я выше написал
 
Ответить
Сообщение
Вот эти цифры нужны вам в файле Периодика?

да, нужно скопировать только цифры по условию которое я выше написал

Автор - akaDemik
Дата добавления - 18.12.2015 в 11:48
Kuzmich Дата: Пятница, 18.12.2015, 11:56 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
В книге Периодика (на листе Периодика) запустите макрос ИщемКнигу, в появившемся диалоговом окне
выберите вашу книгу База
К сообщению приложен файл: 9766419.xls (40.5 Kb)
 
Ответить
СообщениеВ книге Периодика (на листе Периодика) запустите макрос ИщемКнигу, в появившемся диалоговом окне
выберите вашу книгу База

Автор - Kuzmich
Дата добавления - 18.12.2015 в 11:56
akaDemik Дата: Пятница, 18.12.2015, 16:48 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Kuzmich, спасибо, но можно без диалогового окна выбора файла? чтоб макрос работал в фоне...
и не надо удалять данные в таблице, если они есть (остаются старые данные, без наименования "Книга не найдена")
 
Ответить
СообщениеKuzmich, спасибо, но можно без диалогового окна выбора файла? чтоб макрос работал в фоне...
и не надо удалять данные в таблице, если они есть (остаются старые данные, без наименования "Книга не найдена")

Автор - akaDemik
Дата добавления - 18.12.2015 в 16:48
Kuzmich Дата: Пятница, 18.12.2015, 17:09 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
чтоб макрос работал в фоне

Я такого не понимаю. Макрос работает по какому-то событию, либо нажатие кнопки,
либо по изменению значения в какой-либо ячейке. У вас на листе Периодика есть
список книг, по которым надо подтянуть данные из базы. Вот макрос и просматривает
весь этот список и, если такое название есть в базе, то подтягивает значение из
соседней ячейки. Если вы предполагаете другой алгоритм, то опишите его.
 
Ответить
Сообщение
Цитата
чтоб макрос работал в фоне

Я такого не понимаю. Макрос работает по какому-то событию, либо нажатие кнопки,
либо по изменению значения в какой-либо ячейке. У вас на листе Периодика есть
список книг, по которым надо подтянуть данные из базы. Вот макрос и просматривает
весь этот список и, если такое название есть в базе, то подтягивает значение из
соседней ячейки. Если вы предполагаете другой алгоритм, то опишите его.

Автор - Kuzmich
Дата добавления - 18.12.2015 в 17:09
akaDemik Дата: Понедельник, 21.12.2015, 12:26 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Если вы предполагаете другой алгоритм, то опишите его.

есть макрос в таком виде:
[vba]
Код
Sub IMPORT()
Dim srcBook
Set wb = ThisWorkbook
Set wf = WorksheetFunction
' Открываем
    Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    If oFileSystemObject.FileExists(wb.Path & "\2015_12_21_Base.xls") Then ' 2015_12_21 - меняется, надо чтоб была переменная *Base.xls
    Set srcBook = Workbooks.Open(Filename:=wb.Path & "\2015_12_21_Base.xls", ReadOnly:=True, UpdateLinks:=0)
    'Вставляем
    wb.Sheets("Главная").Range("C7") = wf.Sum(srcBook.Sheets("ZZZ").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("C8") = wf.Sum(srcBook.Sheets("ZZZ").Range("B9;D9"))
    wb.Sheets("Главная").Range("C9") = wf.Sum(srcBook.Sheets("ZZZ").Range("C3,C9,C11"))
       wb.Sheets("Главная").Range("C7:C9").Font.Color = vbRed
    srcBook.Close SaveChanges:=False

End Sub
[/vba]
нашел похожий макрос, который нужен, но у меня не получается его применить
[vba]
Код
Sub Макрос1()
Dim sFolder As String, sFiles As String
sFolder = ActiveWorkbook.Path
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    sFiles = Dir(sFolder & "*_База.xls*")
Workbooks.Open Filename:=sFolder & sFiles
Workbooks(1).Activate
[/vba]


Сообщение отредактировал akaDemik - Понедельник, 21.12.2015, 12:29
 
Ответить
Сообщение
Если вы предполагаете другой алгоритм, то опишите его.

есть макрос в таком виде:
[vba]
Код
Sub IMPORT()
Dim srcBook
Set wb = ThisWorkbook
Set wf = WorksheetFunction
' Открываем
    Dim oFileSystemObject As Object: Set oFileSystemObject = CreateObject("Scripting.FileSystemObject")
    If oFileSystemObject.FileExists(wb.Path & "\2015_12_21_Base.xls") Then ' 2015_12_21 - меняется, надо чтоб была переменная *Base.xls
    Set srcBook = Workbooks.Open(Filename:=wb.Path & "\2015_12_21_Base.xls", ReadOnly:=True, UpdateLinks:=0)
    'Вставляем
    wb.Sheets("Главная").Range("C7") = wf.Sum(srcBook.Sheets("ZZZ").Range("A3,A7,A9,A11"))
    wb.Sheets("Главная").Range("C8") = wf.Sum(srcBook.Sheets("ZZZ").Range("B9;D9"))
    wb.Sheets("Главная").Range("C9") = wf.Sum(srcBook.Sheets("ZZZ").Range("C3,C9,C11"))
       wb.Sheets("Главная").Range("C7:C9").Font.Color = vbRed
    srcBook.Close SaveChanges:=False

End Sub
[/vba]
нашел похожий макрос, который нужен, но у меня не получается его применить
[vba]
Код
Sub Макрос1()
Dim sFolder As String, sFiles As String
sFolder = ActiveWorkbook.Path
sFolder = sFolder & IIf(Right(sFolder, 1) = Application.PathSeparator, "", Application.PathSeparator)
    sFiles = Dir(sFolder & "*_База.xls*")
Workbooks.Open Filename:=sFolder & sFiles
Workbooks(1).Activate
[/vba]

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

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