Добрый день. Прошу помочь в написании макроса, который будет вставлять подписи в определенных ячейках. Есть выгрузка файла из 1С, в файле более 50 страниц... (количество страниц всегда разное) Ежемесячно приходится ставить по две подписи на каждом листе.. И что самое муторное-таких файлов по 8 штук ежемесячно (с разных точек) Возможно ли сделать какой нибудь макрос, который поставит подписи в нужных ячейках, (например над словом подпись) Ячейки всегда могут быть разными, в зависимости от движения ден.ср-в, но столбики не меняются.. Пример с подписью во вложении Заранее спасибо
Добрый день. Прошу помочь в написании макроса, который будет вставлять подписи в определенных ячейках. Есть выгрузка файла из 1С, в файле более 50 страниц... (количество страниц всегда разное) Ежемесячно приходится ставить по две подписи на каждом листе.. И что самое муторное-таких файлов по 8 штук ежемесячно (с разных точек) Возможно ли сделать какой нибудь макрос, который поставит подписи в нужных ячейках, (например над словом подпись) Ячейки всегда могут быть разными, в зависимости от движения ден.ср-в, но столбики не меняются.. Пример с подписью во вложении Заранее спасибоOcharovashka666
NikitaDvorets А зачем проверять слово Кассир по двум столбцам A и H, если они находятся в одной строке? Также и слово Бухгалтер всегда ниже слова Кассир на 5 строк
NikitaDvorets А зачем проверять слово Кассир по двум столбцам A и H, если они находятся в одной строке? Также и слово Бухгалтер всегда ниже слова Кассир на 5 строкKuzmich
Спасибо вам за столько вариантов))) Даже не рассчитывала. Просмотрела их все))) Остановлюсь на последнем варианте, в нем раздвигается ячейка, за счет чего подпись более красиво выглядит.
Можно еще немного понаглею и попрошу изменить код- вместо "лист1" что б макрос работал на активном листе..? тк собирать буду в один файл все точки и соответственно подписи вставлять буду на разных листах с разными именами...
Спасибо вам за столько вариантов))) Даже не рассчитывала. Просмотрела их все))) Остановлюсь на последнем варианте, в нем раздвигается ячейка, за счет чего подпись более красиво выглядит.
Можно еще немного понаглею и попрошу изменить код- вместо "лист1" что б макрос работал на активном листе..? тк собирать буду в один файл все точки и соответственно подписи вставлять буду на разных листах с разными именами...Ocharovashka666
В документ надо вставить лист с именем Рис, на котором должна быть подпись (например Рисунок 2) [vba]
Код
Sub Podpis() Dim FoundKassir As Range Dim FAdr As String Dim img As Shape Set img = ThisWorkbook.Worksheets("Рис").Shapes("Рисунок 2") Set FoundKassir = Columns(1).Find("Кассир", , xlValues, xlWhole) If Not FoundKassir Is Nothing Then FAdr = FoundKassir.Address Do img.Copy ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(-1, 1).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(-1, 8).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(5, 1).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(5, 8).Address) Set FoundKassir = Columns(1).FindNext(FoundKassir) Loop While FoundKassir.Address <> FAdr End If ActiveSheet.Range("A1").Select End Sub
[/vba]
В документ надо вставить лист с именем Рис, на котором должна быть подпись (например Рисунок 2) [vba]
Код
Sub Podpis() Dim FoundKassir As Range Dim FAdr As String Dim img As Shape Set img = ThisWorkbook.Worksheets("Рис").Shapes("Рисунок 2") Set FoundKassir = Columns(1).Find("Кассир", , xlValues, xlWhole) If Not FoundKassir Is Nothing Then FAdr = FoundKassir.Address Do img.Copy ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(-1, 1).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(-1, 8).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(5, 1).Address) ActiveSheet.Paste Destination:=ActiveSheet.Range(FoundKassir.Offset(5, 8).Address) Set FoundKassir = Columns(1).FindNext(FoundKassir) Loop While FoundKassir.Address <> FAdr End If ActiveSheet.Range("A1").Select End Sub
NikitaDvorets, Данный макрос не работает, если я перехожу в этом же файле на другой лист с другим названием и пробую там вставить подпись. Если я переименую его на Лист_1 (переименовав предыдущий, тк два листа с одинаковым именем нельзя), то макрос работает...
NikitaDvorets, Данный макрос не работает, если я перехожу в этом же файле на другой лист с другим названием и пробую там вставить подпись. Если я переименую его на Лист_1 (переименовав предыдущий, тк два листа с одинаковым именем нельзя), то макрос работает...Ocharovashka666
Kuzmich, этот Макрос работает)) на всех активных листах) А можно добавить в этот макрос, что б строчка "кассир" расширялась? а то получается как то неправдоподобно, что одна подпись выходит за черту, а другая нет..
Kuzmich, этот Макрос работает)) на всех активных листах) А можно добавить в этот макрос, что б строчка "кассир" расширялась? а то получается как то неправдоподобно, что одна подпись выходит за черту, а другая нет..Ocharovashka666
Да, отредактировал один оператор (файл прилагаю) Если не хочется копировать кнопку и привязывать её к макросу на каждом новом листе, то можно, встав курсором на новый лист, где нужно вставить подписи, нажать Alt - F11 (окно редактора VBA), и сделать двойной удар левой кнопки мыши по Module1 - курсор встанет в окно кода макроса Public Sub Подписать(). Далее - нажать правую стрелку на ленте меню редактора Run Sub/UserForm. Сработает макрос на выделенном листе.
Ocharovashka666,
Цитата
Данный макрос не работает
Да, отредактировал один оператор (файл прилагаю) Если не хочется копировать кнопку и привязывать её к макросу на каждом новом листе, то можно, встав курсором на новый лист, где нужно вставить подписи, нажать Alt - F11 (окно редактора VBA), и сделать двойной удар левой кнопки мыши по Module1 - курсор встанет в окно кода макроса Public Sub Подписать(). Далее - нажать правую стрелку на ленте меню редактора Run Sub/UserForm. Сработает макрос на выделенном листе.NikitaDvorets