Добрый день. Хочу упростить работу своим коллегам сдачи рапортов. Специфика такова, никто никогда не знает сколько будет рейсов за одну работу.Для этого я прописал макрос, который делает слепок из фирмы, вставляет его с именем листа "ReportBR" это стартовый, по мере увеличения количества, имя меняется с приставкой 1-2-3...и т.д. Это мне усложнило жизнь,так как я могу собирать и в данный момент этим пользуюсь данные собираю только формулами такого типа
это со второго листа, ничего заурядного. Но для этого мне надо иметь 10 листов ( максимум что может быть это 10 рейсов). так как при формулах я не могу удалять/добавлять лист, формула бъется при отсутствии листа, пишет #ссылка#и соответственно не работает. У моего коллеги такой вопрос решен следующим образом: у него макрос при добавлении листа дописывает формулы в новую строку "Лист 1" начиная с 5й строки т.е. 6-7-8....и тд. Как вы мне посоветуете сделать подобный свод данных из листа ReportBR...ReportBR1...ReportBR2....и тд. из зеленых ячеек в лист1 соответственно что бы макрос каким то образом прописывал формулу "Если". Воспользовался авто записью макроса при создании формулы: [vba]
[/vba] Мне таким же образом для всех ячеек прописать,не проблема, но может есть проще пусть) многовато писать так. Это всего по листа, а у меня еще таких ячеек 80 кажется. Попросил бы пожалуйста для начала пример или почитать, хочу сам разобраться прежде чем отвлекать вас. Всем спасибо.
Добрый день. Хочу упростить работу своим коллегам сдачи рапортов. Специфика такова, никто никогда не знает сколько будет рейсов за одну работу.Для этого я прописал макрос, который делает слепок из фирмы, вставляет его с именем листа "ReportBR" это стартовый, по мере увеличения количества, имя меняется с приставкой 1-2-3...и т.д. Это мне усложнило жизнь,так как я могу собирать и в данный момент этим пользуюсь данные собираю только формулами такого типа
это со второго листа, ничего заурядного. Но для этого мне надо иметь 10 листов ( максимум что может быть это 10 рейсов). так как при формулах я не могу удалять/добавлять лист, формула бъется при отсутствии листа, пишет #ссылка#и соответственно не работает. У моего коллеги такой вопрос решен следующим образом: у него макрос при добавлении листа дописывает формулы в новую строку "Лист 1" начиная с 5й строки т.е. 6-7-8....и тд. Как вы мне посоветуете сделать подобный свод данных из листа ReportBR...ReportBR1...ReportBR2....и тд. из зеленых ячеек в лист1 соответственно что бы макрос каким то образом прописывал формулу "Если". Воспользовался авто записью макроса при создании формулы: [vba]
[/vba] Мне таким же образом для всех ячеек прописать,не проблема, но может есть проще пусть) многовато писать так. Это всего по листа, а у меня еще таких ячеек 80 кажется. Попросил бы пожалуйста для начала пример или почитать, хочу сам разобраться прежде чем отвлекать вас. Всем спасибо.Santtic
Всем добрый день. Все что сегодня сделал, так это слил формулы в макросе, что бы они выполнялись одна за одной в свои ячейки. Формулы прописаны под один определенный лист. пробовал сделать под не определенное количество листов, ничего не вышло. Суть задачи осталась такой: Как переправит макрос, что бы он искал данные из всех листов которые будут в рапорте ( их может быть и 3 и 2 и 10) начала названия листа будет одинаковое но с нумерацией (2),(3).... и вставлял значения в "Лист1 (2)" начиная с 5й строки. Данные должны собираться рапорт 1 - 5 строка, рапорт 2 - 6 строк ...и т.д. То что я прописал, как бы и прописывает, но только к первому листу,второй лист не видит и еще добавляет в столбец А какие то значения. Откуда он из берет ума не приложу ( выделено красным). Пока решилось таким способом определения последней строки вместо [vba]
[/vba] Лишнего не прописивает, но не ищет далее по листам. Всем спасибо.
Всем добрый день. Все что сегодня сделал, так это слил формулы в макросе, что бы они выполнялись одна за одной в свои ячейки. Формулы прописаны под один определенный лист. пробовал сделать под не определенное количество листов, ничего не вышло. Суть задачи осталась такой: Как переправит макрос, что бы он искал данные из всех листов которые будут в рапорте ( их может быть и 3 и 2 и 10) начала названия листа будет одинаковое но с нумерацией (2),(3).... и вставлял значения в "Лист1 (2)" начиная с 5й строки. Данные должны собираться рапорт 1 - 5 строка, рапорт 2 - 6 строк ...и т.д. То что я прописал, как бы и прописывает, но только к первому листу,второй лист не видит и еще добавляет в столбец А какие то значения. Откуда он из берет ума не приложу ( выделено красным). Пока решилось таким способом определения последней строки вместо [vba]
Коллеги, может подскажите где почитать или вариант. Те формулы что прописал, они работают, но что бы макрос искал по листам (не известно какое количество их будет) прописывал новую строку, с данными с нового листа. Просто вариант, это создать 10 макросов с именным диапазоном. Назначить кнопочки и нажимать. Но это не по инженерному)) То что я находил, под мои формулы в макросе естественно не подходит. Везде они прописаны как то по другому. Всем спасибо.
Коллеги, может подскажите где почитать или вариант. Те формулы что прописал, они работают, но что бы макрос искал по листам (не известно какое количество их будет) прописывал новую строку, с данными с нового листа. Просто вариант, это создать 10 макросов с именным диапазоном. Назначить кнопочки и нажимать. Но это не по инженерному)) То что я находил, под мои формулы в макросе естественно не подходит. Везде они прописаны как то по другому. Всем спасибо.Santtic
Здравствуйте. Именно формулы нужны или можно просто значения записать в ячейки? Если формулы, то надо вместо имени листа написать '" & sh.Name & "', типа [vba]
Здравствуйте. Именно формулы нужны или можно просто значения записать в ячейки? Если формулы, то надо вместо имени листа написать '" & sh.Name & "', типа [vba]
Именно формулы нужны или можно просто значения записать в ячейки?
Добрый день. Спасибо большое за очередной совет. Сегодня к вечеру попробую, что выйдет. Немного текущей работы добавилось...сервисы... По поводу значения или формулы. Если вас не затруднит, не могли бы вы написать хотя бы для одной ячейки, мне оба варианта пригодятся, мыслей масса,по своей глупости решил вывести всю службу в одно "программное" решение. Такой себе трудоголик, зарплату не повысят и особо не похвалят. А для себя не плохой плюс в резюме. Очень вам благодарен) Попробовал ваш вариант, супер, ищет но по последнему листу. [vba]
Код
Public Sub www() Dim sh As Worksheet For Each sh In Worksheets
Именно формулы нужны или можно просто значения записать в ячейки?
Добрый день. Спасибо большое за очередной совет. Сегодня к вечеру попробую, что выйдет. Немного текущей работы добавилось...сервисы... По поводу значения или формулы. Если вас не затруднит, не могли бы вы написать хотя бы для одной ячейки, мне оба варианта пригодятся, мыслей масса,по своей глупости решил вывести всю службу в одно "программное" решение. Такой себе трудоголик, зарплату не повысят и особо не похвалят. А для себя не плохой плюс в резюме. Очень вам благодарен) Попробовал ваш вариант, супер, ищет но по последнему листу. [vba]
Код
Public Sub www() Dim sh As Worksheet For Each sh In Worksheets
Макрос ищет по всем листам, но Вы записываете всё в одну строку, пятую, поэтому остаётся только последний лист. Вы поясните конкретнее: в ячейку С5 должно пойти значение из ячейки такой-то при условии, что она больше 0. Хотя бы несколько ячеек, потом сделаете по аналогии. И избавляйтесь от Select-Activecell, это не рационально. Посмотрите, как я записала строчки без Select
Макрос ищет по всем листам, но Вы записываете всё в одну строку, пятую, поэтому остаётся только последний лист. Вы поясните конкретнее: в ячейку С5 должно пойти значение из ячейки такой-то при условии, что она больше 0. Хотя бы несколько ячеек, потом сделаете по аналогии. И избавляйтесь от Select-Activecell, это не рационально. Посмотрите, как я записала строчки без SelectPelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
[/vba] А по аналогии имелось ввиду вместо А5 указываем А6 и т.д? А как мне сделать что бы макрос писал мне в строку А5 Лист "ReportBR" , в А6 Лист "ReportBR2", в А7 Лист"ReportBR3" и т.д.? Я уже и добавлял ему, что бы прописывал ниже, ничего не меняет)) ясное дело что то я так прописывал)) Не ничего не вышло у меня. Не копирует данные с другого листа в 6 строку...и т.д. Ткните пожалуйста носом))
[/vba] А по аналогии имелось ввиду вместо А5 указываем А6 и т.д? А как мне сделать что бы макрос писал мне в строку А5 Лист "ReportBR" , в А6 Лист "ReportBR2", в А7 Лист"ReportBR3" и т.д.? Я уже и добавлял ему, что бы прописывал ниже, ничего не меняет)) ясное дело что то я так прописывал)) Не ничего не вышло у меня. Не копирует данные с другого листа в 6 строку...и т.д. Ткните пожалуйста носом))Santtic
Сообщение отредактировал Santtic - Понедельник, 24.02.2020, 21:15
супееер, спасибо огромное, наконец то окончу этот проект. Полтора года выдумывал всякие таблички, формочки, массу переделал всего, подсмотрел на форуме огромнейшее количество решений, подстроил их под себя. Очень благодарен вам за помощь.
супееер, спасибо огромное, наконец то окончу этот проект. Полтора года выдумывал всякие таблички, формочки, массу переделал всего, подсмотрел на форуме огромнейшее количество решений, подстроил их под себя. Очень благодарен вам за помощь.Santtic
[/vba] пробовал убирать как в аналогии номер строк "5" и дописывать & lr, но ничего не дало. До этого момента работает, Лист 1(2) не убирал имя, так как он не правильно потом прописывает формулу. и не делает сравнения. [vba]
[/vba] пробовал убирать как в аналогии номер строк "5" и дописывать & lr, но ничего не дало. До этого момента работает, Лист 1(2) не убирал имя, так как он не правильно потом прописывает формулу. и не делает сравнения. [vba]
Всем добрый день. Подскажите пожалуйста, если я хочу с четырех листов собрать данные начиная с 17 строки, что мне еще нужно дописать. Данные должны только дописываться, не перезаписывать, а только дополнять. На тех листах сбор идет макросом с закрытых книг. А вот как с четырех собрать не пойму. Формулами как ранее мог прописать, но файл будет набираться много лет. Поэтому формулы увы не помогут, только нагружать файл. Файл обязательно приложить и нужно ли тему новую создавать? Вопрос как бы по сбору данных, поэтому не создавал новую. Если нарушил правила, прошу простить, тему создам если это необходимо. Спасибо. [vba]
Код
Dim sh As Worksheet For Each sh In Worksheets If sh.Name Like "ПВТР" And sh.Name <> "Стрійське" And sh.Name <> "Красноградське" And sh.Name <> "Шебелинське" Then lr = Application.Max(Cells(Rows.Count, 1).End(xlUp).Row + 1, 17)
If IsArray(vData) Then [b17].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [b17] = vData End If
Application.ScreenUpdating = True
End If Next End Sub
[/vba]Public Sub www()
Создал тему,так как собрал почти все.
Всем добрый день. Подскажите пожалуйста, если я хочу с четырех листов собрать данные начиная с 17 строки, что мне еще нужно дописать. Данные должны только дописываться, не перезаписывать, а только дополнять. На тех листах сбор идет макросом с закрытых книг. А вот как с четырех собрать не пойму. Формулами как ранее мог прописать, но файл будет набираться много лет. Поэтому формулы увы не помогут, только нагружать файл. Файл обязательно приложить и нужно ли тему новую создавать? Вопрос как бы по сбору данных, поэтому не создавал новую. Если нарушил правила, прошу простить, тему создам если это необходимо. Спасибо. [vba]
Код
Dim sh As Worksheet For Each sh In Worksheets If sh.Name Like "ПВТР" And sh.Name <> "Стрійське" And sh.Name <> "Красноградське" And sh.Name <> "Шебелинське" Then lr = Application.Max(Cells(Rows.Count, 1).End(xlUp).Row + 1, 17)
If IsArray(vData) Then [b17].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData Else [b17] = vData End If