Добрый вечер! Помогите пожалуйста... Есть таблица с большим количеством строк. Необходимо в конце каждой строчки создать гиперссылку для перехода на один из соседних листов (диплом или сертификат) в зависимости от значения последнего столбца, при чем при переходе в ячейку номер диплома возвращалось значение первого столбца таблицы на листе 1 (т.е. порядковый номер). и потом эта станица экспортировалась в PDF с названием файла - порядковый номер... пробовала через макросы, выдает ошибку Возможно ли это??? Помогите пожалуйста
Добрый вечер! Помогите пожалуйста... Есть таблица с большим количеством строк. Необходимо в конце каждой строчки создать гиперссылку для перехода на один из соседних листов (диплом или сертификат) в зависимости от значения последнего столбца, при чем при переходе в ячейку номер диплома возвращалось значение первого столбца таблицы на листе 1 (т.е. порядковый номер). и потом эта станица экспортировалась в PDF с названием файла - порядковый номер... пробовала через макросы, выдает ошибку Возможно ли это??? Помогите пожалуйста Katerinka_2016
я не понял зачем здесь гиперссылка? Попробуйте код: [vba]
Код
Sub d() Dim shN$, i&, n$, c As Range For Each c In Selection.Rows shN = Cells(c.Row, "e"): i = Cells(c.Row, "a") n = ActiveWorkbook.Path & "\" & i & "_" & shN & ".pdf" With Sheets(shN) If shN = "диплом" Then .Range("K10") = i Else .Range("g7") = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=0 End With Next End Sub
[/vba] Работает так выделяете те ячейки по которым нужно создать пдфки и жмете кнопку
я не понял зачем здесь гиперссылка? Попробуйте код: [vba]
Код
Sub d() Dim shN$, i&, n$, c As Range For Each c In Selection.Rows shN = Cells(c.Row, "e"): i = Cells(c.Row, "a") n = ActiveWorkbook.Path & "\" & i & "_" & shN & ".pdf" With Sheets(shN) If shN = "диплом" Then .Range("K10") = i Else .Range("g7") = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=0 End With Next End Sub
[/vba] Работает так выделяете те ячейки по которым нужно создать пдфки и жмете кнопкуSLAVICK
SLAVICK, ааа.... я вообще затупок надо назначить на эту кнопку макрос с кодом который вы написали? а потом выделить всю строку и нажать на кнопку? и открывается ли тогда сразу этот пдфный файл?
Спасибо вам за помощь на самом деле я только начинаю осваивать макросы
SLAVICK, ааа.... я вообще затупок надо назначить на эту кнопку макрос с кодом который вы написали? а потом выделить всю строку и нажать на кнопку? и открывается ли тогда сразу этот пдфный файл?
Спасибо вам за помощь на самом деле я только начинаю осваивать макросы Katerinka_2016
Нет - специально так сделал, если много документов делать - будет куча открытых ПДФ. Если нужно, чтоб открывались - замените OpenAfterPublish:=0 на OpenAfterPublish:=1
Нет - специально так сделал, если много документов делать - будет куча открытых ПДФ. Если нужно, чтоб открывались - замените OpenAfterPublish:=0 на OpenAfterPublish:=1SLAVICK
SLAVICK, Дело в том, я совсем не понимаю этот язык программирования и не могу ничего поменять. А в моей таблице больше столбцов, и задача усложняется тем, что диплом будет трех степеней - I, II, III. Плюс сертификат и благодарственное письмо педагогу. Итого сводная и 5 листов.
Думала, что по вашему примеру смогу настроить свою таблицу, но не так все просто
SLAVICK, Дело в том, я совсем не понимаю этот язык программирования и не могу ничего поменять. А в моей таблице больше столбцов, и задача усложняется тем, что диплом будет трех степеней - I, II, III. Плюс сертификат и благодарственное письмо педагогу. Итого сводная и 5 листов.
Думала, что по вашему примеру смогу настроить свою таблицу, но не так все просто Katerinka_2016
Из таблицы сложно понять когда какой документ создавать. Добавил в таблицу две колонки: Название листа с документом: Ячейка в которой нужно менять данные. Будет проще и Вам и мне. см. файл - там вроде все понятно.
[vba]
Код
Sub d() Dim shN$, i&, n$, c As Range, adr$ Application.ScreenUpdating = False For Each c In Selection.Rows shN = Cells(c.Row, "s") ' имя листа i = Cells(c.Row, "a") ' Номер документа adr = Cells(c.Row, "t") ' Адрес ячейки изменения n = ActiveWorkbook.Path & "\" & i & "_" & shN & ".pdf" ' имя документа With Sheets(shN) .Range(adr) = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=0 End With Next Application.ScreenUpdating = True End Sub
[/vba]
Из таблицы сложно понять когда какой документ создавать. Добавил в таблицу две колонки: Название листа с документом: Ячейка в которой нужно менять данные. Будет проще и Вам и мне. см. файл - там вроде все понятно.
[vba]
Код
Sub d() Dim shN$, i&, n$, c As Range, adr$ Application.ScreenUpdating = False For Each c In Selection.Rows shN = Cells(c.Row, "s") ' имя листа i = Cells(c.Row, "a") ' Номер документа adr = Cells(c.Row, "t") ' Адрес ячейки изменения n = ActiveWorkbook.Path & "\" & i & "_" & shN & ".pdf" ' имя документа With Sheets(shN) .Range(adr) = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=0 End With Next Application.ScreenUpdating = True End Sub
SLAVICK, Да, вы правы! Не понятно поставлена задача. Если в столбце "Степень" указано значение I, то создаем документ Лист!'I степень' (ячейка AL12); значение II - документ Лист!'II степень' (ячейка AL12); значение III - Лист!'III степень' (ячейка AL12); значение Участие - Лист!'Сертификат' (ячейка Т9)
SLAVICK, Да, вы правы! Не понятно поставлена задача. Если в столбце "Степень" указано значение I, то создаем документ Лист!'I степень' (ячейка AL12); значение II - документ Лист!'II степень' (ячейка AL12); значение III - Лист!'III степень' (ячейка AL12); значение Участие - Лист!'Сертификат' (ячейка Т9)Katerinka_2016
Сообщение отредактировал Katerinka_2016 - Понедельник, 01.02.2016, 22:13
SLAVICK, Еще вопрос... возможно ли при нажатии на кнопку "Сохранить документ", в случае если столбец "Педагог" в этой строке заполнен, то формируется два документа: диплом или сертификат и благодарственное письмо (Лист!'БП', ячейка Y15). ну и также открытие этих файлов.
SLAVICK, Еще вопрос... возможно ли при нажатии на кнопку "Сохранить документ", в случае если столбец "Педагог" в этой строке заполнен, то формируется два документа: диплом или сертификат и благодарственное письмо (Лист!'БП', ячейка Y15). ну и также открытие этих файлов.Katerinka_2016
в случае если столбец "Педагог" в этой строке заполнен, то формируется два документа: диплом или сертификат и благодарственное письмо
Нужно добавить блок : [vba]
Код
If Len(Cells(c.Row, "j")) Then ' блок проверки преподавателя With Sheets("БП") n = ActiveWorkbook.Path & "\" & i & "_" & "БП" & ".pdf" ' имя документа .Range("y15") = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=1 End With End If
в случае если столбец "Педагог" в этой строке заполнен, то формируется два документа: диплом или сертификат и благодарственное письмо
Нужно добавить блок : [vba]
Код
If Len(Cells(c.Row, "j")) Then ' блок проверки преподавателя With Sheets("БП") n = ActiveWorkbook.Path & "\" & i & "_" & "БП" & ".pdf" ' имя документа .Range("y15") = i .Calculate .ExportAsFixedFormat Type:=xlTypePDF, Filename:=n, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=1 End With End If
SLAVICK, а если в столбце "Степень" сразу прописывать "I степень, II степень, III степень, Сертификат", можно обойтись без вспомогательных ячеек справа?
SLAVICK, а если в столбце "Степень" сразу прописывать "I степень, II степень, III степень, Сертификат", можно обойтись без вспомогательных ячеек справа?Katerinka_2016
SLAVICK, Я имела в виду расположение ячейки AL12 на самом дипломе, т.е. вкладка "I степень" др. Через месяц планируется другой конкурс, там будут дипломы с книжной ориентацией страницы, соответственно номер переместится.
SLAVICK, Я имела в виду расположение ячейки AL12 на самом дипломе, т.е. вкладка "I степень" др. Через месяц планируется другой конкурс, там будут дипломы с книжной ориентацией страницы, соответственно номер переместится.Katerinka_2016