Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

Как передать значение ячейки одного листа одной книги в другую книгу

Автор Rinalaz, 27.09.2011, 14:45

« назад - далее »

Rinalaz

Здравствуйте! Подскажите пожалуйста -
1. как передать через макрос значение одной ячейки (например ФИО) с книги 1 листа А  в другую ячейку (например тоже ФИО) но в книгу 2 на лист В.
2. И ещё вопрос - как в макросе через VBA  переписать вот эту формулу
=ЕСЛИ(J8<(1536*E8);"отсутствует (ниже средней нормы)";J8-E8*1536)
т.е. в столбце "Норматив" должно высчитываться по этой формуле значение в зависимости от содержимого других двух столбцов.

3. и ещё...как через макрос перемножить два столбца, а значения вывести в третьем...простой вопрос, но сколько синктасисов не перебрала - сдаюсь...

Спасибо за внимание, буду очень признательна за помощь.

lllmixalll


_Boroda_

1. Workbooks("Книга2").Sheets("Лист2").Range("B2") = Workbooks("Книга1").Sheets("Лист2").Range("A1").Value2. Range("K8:K888").FormulaR1C1 = "=IF(R[6]C[9]<(1536*R[6]C[4]),""отсутствует (ниже средней нормы)"",R[6]C[9]-R[6]C[4]*1536)"
   Range("K8:K888") = Range("K8:K888").Value
3. Range("D3:D6").FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("D3:D6") = Range("D3:D6").Value
Скажи мне, кудесник, любимец ба'гов...



Яндекс-деньги: 41001632713405
Webmoney: R289877159277; Z102172301748; E177867141995

Rinalaz

Ковырялась...и всё синтаксиси ошибки выдает...выкладываю пример - может так больше разберусь. Спасибо заранее за помощь!
Итак суть.
1. Из синих ячеек файлов К1, К2, К3...КN (где N-кол-во сотрудников) данные попадают в синие ячейки по строкам файла К0.
3. в красных ячейках надо через макрос получить перемножение.
2. а в зеленых ячейках - через макрос - результаты той самой формулы-условия....

при этом - сток столько, какая цифра стоит в желтой ячейке (кол-во сотрудников), собственно такое же кол-во файлов К, из которых нужно свести информацию в К0.

Ещё раз - огромное спасибо всем кто откликнется!

exceleved

Пробуйте. Макрос копирует формулы по строкам ниже. Почему бы не оставить на листе формулы?
Кол-во файлов берется из желтой ячейки.

Rinalaz

разобралась...Спасибо за вариант, но увы не то. Формулы нужны именно в макросе.
И в вашем примере 3 недостатка: 1.после обновления и повторного запуска файла - данные не обновляются, а добавляет ещё одни строки ниже.  2. зависимость от имени файла, т.е. мне все файлы надо будет переименовывать под одно имя с разным номером. 3. формулы на листе остались.

Но спасибо, буду знать и такие варинты, тоже пригодится!

Вопрос остается открытым, спасибо за внимание, очень жду помощи!

Rinalaz

И ещё подобная задача...но вроде бы проще - организация копирования массива данных...:
на примере:
1. надо из файлов с названиями отделов скопировать кол-во сотрудников (Х) и сложить их в сводном файле в соответствующей ячейке, т.е. чтоб получить общее кол-во сотрудников организации.
2. в зависимости от Х (кол-во сотрудников в отделе) с файлов отделов диапозон с данными по всем сотрудникам  (можно целиком строки) копировался в сводный файл на тоже место, но следующий отдел копировался ниже...и так все подразделения в один общий список.
3. в первой колонке необходимо чтоб копировалось название того подразделения откуда сотрудники , т.е. копировалась ячейка с названием отдела из файла отдела.

Помогите пожалуйста, уважаемые профессионалы...что-то трудно у меня идут подобные задачи...с массивами и копированием данных из закрытых книг. Заранее искрення признательна!

Wasilic

Цитата: Rinalaz от 09.10.2011, 00:05
И в вашем примере 3 недостатка:
Выявленные Вами недостатки в примере, говорят о недостатке или отсутствии у Вас знаний в VBA.
Вам пытаются помочь, а Вы недостатки ищите.

Цитата: Rinalaz от 09.10.2011, 00:05
1.после обновления и повторного запуска файла - данные не обновляются, а добавляет ещё одни строки ниже.
Установите в начале процедуры команду - Range("A5 : J100").Clear и 1-й недостаток исключен.

Цитата: Rinalaz от 09.10.2011, 00:05
2. зависимость от имени файла, т.е. мне все файлы надо будет переименовывать под одно имя с разным номером.
Так ведь, имена файлов из Вашего же примера, получается, это уже Ваш недостаток!

Цитата: Rinalaz от 09.10.2011, 00:05
3. формулы на листе остались.
Формулы Вам ранее предложил уважаемый _Boroda_ .
Вставьте их в процедуру, и 3-й недостаток мсключен.
Успехов!
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Rinalaz

я не ищу недостатки...я просто не знаю каким другим словом назвать то, чего не хвататет...извинясь, если неправильно выразилась...
а имена файлов просто могут быть разными...а в пример - ну так быстрее и проще... в общем...
понимать понимаю, но связать все не получается - синтаксис замучал, ошибка на ошибке..знаний не хватает много, просто знаю что можно автоматизировать - вот и хочется...я вообще документовед и не хочется сидеть и тупым перекопированием заниматься... :-[ вот и подумала, что точно можно макросом ...в вузе когда-то делала...и переодически эта задача всплывает, но её меняют...вот и приходится варьировать...

С.М.

Эксель изощрён, но не злонамерен.

Wasilic

Rinalaz, Если Вы хотите что бы Вам помогли, выложите пару, тройку настоящих файлов (сотрудников). Фамилии, если они секретные, замените на Иванов, Петров, Сидоров. Укажите диск и имя папки в которой они лежат. Выложите свой рабочий файл, а не файл-пример К0.
Теперь, в файле-примере К0, колонка F (баллы) участвует в расчетах колонок H и J.
А откуда берЁтся информация в колонку F? Если вводится вручную после копирования сотрудников то, каким же образом макрос сможет  рассчитает результат колонок H и J во время копирования, где он  возьмет данные колонки F?  Значит, без формул не обойтись.
Эксель могуч но, не всесилен.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Rinalaz

Вот реальный пример. Суть - из файлов кафедр данные копируются в один сводный файл.
1. Количество сотрудников в ячейке N3 -она в каждом файле. Надо чтоб в ячейке N3 файла "сводный" была сумма из N3 всех файлов.
по коду предложенным _Boroda_ надо знать имя файла, а оно может быть разным..

Workbooks("Сводный по академии").Sheets("ИТОГИ").Range("N3") = СУММА (???) Workbooks("ЛЮБОЕ ИМЯ").Sheets("ИТОГИ").Range("N3").Value

как понимаю надо накой переменной присвоить путь файла и подставлять этот путь с переменным именем в эту формулу...но не получается - не работает...

2.далее в первый столбец файла "сводный по академии" начиная с ячейки А8 и по Ах (где х=N3 того файла откуда копируем) копировался код кафедры, который хранится в ячейке О2.
далее с ячейки Ах+1 копируется код следующей кафедры  и т.д. вниз попрядку...в примере накопировала данных как выглядит.
как я понимаю, что формула таже, но тут меняется кол-во строк и начальный адрес строки от которой начинается копироваться код следующей кафедры.

3. Далее можно с формулами (как я хотела: копировать только сами данные (6 столбцов), а то что можно вычислить (остальные 5 столбцов) в сводном файле - сново их вычислить в сводном), а можно БЕз. И я решила упростить задачу: просто перекопировать все данные из всего диапозона.
Т.Е.
в остальные ячейки файла "сводный по академии" из файла кафедры копируется диапозон ячеек  $B8:$Nх, где х - кол-во сотрудников кафедры (она же N3),   в    аналогичный диапозон по столбцам, а по строкам вниз по порядку (т.е. под данными одной кафедры копируются данные другой кафедры).

в итоге должна получится таблица, которая аналогична таблице кафедральной, но содержит данные всех сотрудников по академии со всех кафедр.

Буду очень признательна за помощь. Сейчас в примере файл "сводный по академии" уже заполнен данными из файлов кафедр, а надо чтоб это копировалось макросом. Т.к. все данные все кафедры могут править и менять :-( и надо будет 100 раз обновлять и делать данное действо.

nilem


Wasilic

Чёто намудрил, вроде работает.
Возможно есть варианты более быстродействующие но,
чем богаты...
Дерзайте.
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Rinalaz

Уважаемые nilem и Wasilic, всё работает!
даже разные способы, многое почерпнула для себя. СПАСИБО огромное!!!!