Друзья, может помочь кто-нибудь подправить макрос ?
Макрос для печати в зависимости от условий в ячейках
Макрос для печати в зависимости от условий в ячейках
04.10.2023 06:42:18
Михаил Лебедев, спасибо огромное, очень клева получилось. Моих знаний точно не хватит такой написать. Вы большой молодец!!!
Еще маленькая просьба, подправить код, чтобы листы сохранялись в один PDF, без МО и ПО в конце. Два направления в одном файле PDF. Условия такие же если "v", то 2 направления, если "0" то 1. Пример: 703 Петров П.И.pdf Еще раз огромное спасибо, за оказанную помощь!!! |
|
|
Макрос для печати в зависимости от условий в ячейках
02.10.2023 13:47:23
Михаил Лебедев, спасибо огромное за оказанную помощь.
Но получается, макрос не срабатывает как нужно. Во вложенном файле, макрос Naprav1, проверяет в столбце А, наличие плюса и сохраняет пдф, и проверяет следующую строку. В итоге получается два пдф файла направления 1. Далее плюсы удаляются. В Вашем варианте получается нет цикла, т.е. он сохраняет вариант из первой строки. и дальше не идет. Также заметил при добавлении 3 строки, с наличием V, сохраняется только направление 1. Также, так как направления 2 штуки, нужно им присвоить разные имена при сохранении, Направление 1 в конце МО, направление 2 в конце ПО. Может я неправильно описал то что нужно в итоге(. Таблица наполняется данными на листе Заполнить, при помощи ВПР переносятся значения в листы с направлениями, для этого мы и ставим + в столбце A. Макрос проверяет наличие "+" в ячейке А2, если "+" есть данные вставляются на листы Направление 1 и 2, через ВПР. Далее сохраняет в пдф направление 1 формате 703 Петров П.И. МО Далее проверяет наличие "v" в ячейке J2, если стоит значит сохраняет направление 2, с именем 703 Петров П.И. ПО. Далее удаляет "+" в ячейке А2. И проверяет следующие ячейки соответственно A3 и J3, и так далее. Просто если не удалить "+" в предыдущей ячейке, через ВПР данные не подставятся со следующей строки. В принципе можно обойтись и без +, но я не знаю как. В голову пришло только такое решения для заполнения направлений. Сможете подправить код? Огромное спасибо ВАМ. |
|
|
Перенос гиперссылки на другой лист
Макрос для печати в зависимости от условий в ячейках
Изменить цвет ячейки в зависимости от даты
Изменить цвет ячейки в зависимости от даты
01.04.2023 13:44:28
|
|
|
Изменить цвет ячейки в зависимости от даты
01.04.2023 13:18:57
Посмотрел на формулу и подумал что она не подойдет. Попробовал копировать даты в другие ячейки ничего не меняться в условном форматировании. |
|
|
Изменить цвет ячейки в зависимости от даты
01.04.2023 08:54:39
Я не один веду этй таблицу и там намного больше данных, чем в примере. При копировании даты из других ячеек условное форматирование перестает конкретно работать. По этому решил спросить про макрос который никто никогда не сломает) Получается, когда копируешь ячейку в соседнюю, условное форматирование также копируется и получается как здесь |
|
|
Изменить цвет ячейки в зависимости от даты
Подсчет значений в диапазоне по массиву условий, Упростить формулу
Подсчет значений в диапазоне по массиву условий, Упростить формулу
Подсчет значений в диапазоне по массиву условий, Упростить формулу
Подсчет значений в диапазоне по массиву условий, Упростить формулу
Подсчет значений в диапазоне по массиву условий, Упростить формулу
19.12.2022 12:39:56
Всем привет, как можно сократить формулу, так как строк в таблице больше 1000
=СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$2)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$3)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$4)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$5)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$6)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$7)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$8)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$9)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$10)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$11)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$12)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$13)+СЧЁТЕСЛИМН(AB$8:AB$990;"ON";$G$8:$G$990;$G$1010;$N$8:$N$990;Лист1!$A$14)
Изменено: |
|
|
Макрос поиска дубликатов с последующим сложением и удалением
01.08.2022 10:13:12
Евгений Корнилов, извените не сразу понял как его установить, но вроде получилось. А какие дальнейшие действия нужно выполнить?
|
|
|
Макрос поиска дубликатов с последующим сложением и удалением
01.08.2022 10:12:13
evgeniygeo, спасибо огромное попробую, и отпишусь что получилось
|
|
|
Макрос поиска дубликатов с последующим сложением и удалением
01.08.2022 07:33:40
|
|||||
|
Макрос поиска дубликатов с последующим сложением и удалением
Макрос поиска дубликатов с последующим сложением и удалением
01.08.2022 02:41:23
Всем привет.
Помогите подправить макрос. В таблице нужно оставить определенные столбцы (BCDENP), а остальные удалить. Во вновь полученной таблице сделать сортировку значение, и удалить дублирующие строки в столбце Material, но с суммированием значений из столбцов отдельно для Unrestricted и Blocked. В файле добавил описание. Количество строк может достигать 10000. И если, не сложно описать каждую строку кода для дальнейшего понимания. Заранее спасибо.
Изменено: |
|||
|
Печать бланка при последовательном его заполнении из диапазона строк
Печать бланка при последовательном его заполнении из диапазона строк
Печать бланка при последовательном его заполнении из диапазона строк
Печать бланка при последовательном его заполнении из диапазона строк
Печать бланка при последовательном его заполнении из диапазона строк
25.02.2021 10:19:30
Евгений Смирнов, спасибо огромное все заработало!! Всем спасибо за участие. Все работает как часики.
|
|
|
Печать бланка при последовательном его заполнении из диапазона строк
25.02.2021 10:09:55
Mershik, Плюс ставиться для переноса данных с листа Данные, далее печатается бланк заполненный из строки где стоит +. Дальше макрос должен стереть этот + и поставить в ячейку ниже. Если будет два плюса в одном столбце данные не подставятся на лист Бланк. Просто для переноса данных на лист Бланк я использовал функцию ВПР.
|
|
|
Печать бланка при последовательном его заполнении из диапазона строк
25.02.2021 09:36:31
Mershik, мне нужно чтобы макрос подставлял + в ячейку А2 и печатал лист Бланк, далее отчищал ячейку и переходил к следующей А3,
подставлял + в ячейку А3 и печатал лист Бланк, далее отчищал ячейку и переходил к следующей А4 и т.д. Так до 100 ячейки. Пример приложил, спасибо |
|
|
Печать бланка при последовательном его заполнении из диапазона строк
Печать бланка при последовательном его заполнении из диапазона строк
Макрос для печати для определенных листов, Печать определенных листов
20.07.2020 14:05:00
Добрый день уважаемые участники форума!!! Хотел попросить у Вас помощи. Так как не особо понимаю в программировании, не смог найти подходящий для себя вариант. Вообщем цель следующая, нужно чтобы при нажатии кнопки Печать (Сохранить в PDF) макрос анализировал установлен ли + напротив строки, если да, то отправлял на печать (сохранял в PDF) лист. Данными из этой строки где установлен +, заполняются строки на листе Бланк ПН. Также хотелось узнать есть ли возможность при печати выбирать какие страницы печатать при определенном условии. Например печатаем страницы 1,2,3 если в ячейке F4 1, или печатаем страницы 2,4,6 если в ячейке F5 2. Заранее благодарен. Пример во вложении.
Вот есть примеры, но я не пойму как их мне отредактировать под свои нужды. Sub ВPDF() Const sPROTOCOL_WSH_NAME As String = "Данные" With ThisWorkbook.Worksheets(sPROTOCOL_WSH_NAME) Dim arr(): arr = .Range("A4:A" & .Cells.SpecialCells(xlCellTypeLastCell).Row).Value End With ' ThisWorkbook.Worksheets(sPROTOCOL_WSH_NAME) Dim i As Long, j As Long: j = UBound(arr, 2) Dim aSh(), li As Long Dim t As String On Error Resume Next For i = 1 To UBound(arr, 1) If StrComp(arr(i, j), "+", vbTextCompare) = 0 Then ReDim Preserve aSh(li) aSh(li) = CStr(arr(i, 1)) li = li + 1 t = t + " " + CStr(arr(i, 1)) End If Next i If li = 0 Then MsgBox ("Поставь + в столбец Печать, для сохранения файла!!!!") End If t = "Паспорт" + t Worksheets(aSh).Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ ThisWorkbook.Path & "\" & t, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False On Error GoTo 0 Application.StatusBar = False Worksheets("Данные").Select End Sub Sub Печать1() Const sPROTOCOL_WSH_NAME As String = "Данные" With ThisWorkbook.Worksheets(sPROTOCOL_WSH_NAME) Dim arr(): arr = .Range("A6:P" & .Cells.SpecialCells(xlCellTypeLastCell).Row).Value End With ' ThisWorkbook.Worksheets(sPROTOCOL_WSH_NAME) Dim i As Long, j As Long: j = UBound(arr, 2) Dim t As Long On Error Resume Next For i = 1 To UBound(arr, 1) If StrComp(arr(i, j), "+", vbTextCompare) = 0 Then t = t + 1 With ThisWorkbook.Worksheets(CStr(arr(i, 1))) If Err = 0 Then Application.StatusBar = "Печатаем лист """ & .Name & """" .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False Else Err.Clear End If ' Err = 0 End With ' ThisWorkbook.Worksheets(arr(i, 1)) End If Next i On Error GoTo 0 Application.StatusBar = False If t = 0 Then MsgBox ("Поставь + в столбец Печать, для сохранения файла!!!!") End If End Sub
Изменено: |
|
|