Здравствуйте, нужна помощь в решении следующей задачи. Исходные данные: Задаются 4 разных параметра объекта. Например: Тип защищаемого элемента: трансформатор Номинальное напряжение: 110 Вид защиты: ДЗТ Терминал: ABB RET 670. Так же, в этой же книге для каждого терминала на отдельном листе есть шаблон. Необходимо, чтобы при выборе терминала, создавался новый лист с шаблоном для этого терминала. Например выбирается терминал ABB RET 670, создается лист с шаблоном для этого терминала, выбирается терминал Бреслер 01.07.701 создается лист с шаблоном этого терминала.
В модуль листа. Правда, из-за того, что у вас значение в ячейке отличается от имени листа, работает только для Бреслер 0107.701.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C9")) Is Nothing Then
On Error Resume Next
Sheets(Range("C9").Value).Copy
On Error GoTo 0
End If
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Maria1111, добрый день. У вас список листов-шаблонов задан вручную (в именах) и не совпадает с реальными листами. Предлагаю добавить в модуль листа ещё одну процедуру, которая будет пересоздавать список выбора по существующим в книге листам.
Код
Private Sub Worksheet_Activate()
Dim sSheetList As String, sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
If Not sh Is ActiveSheet And Not (sh.Name Like "*(*)") Then
sSheetList = sSheetList & IIf(sSheetList = "", "", ",") & sh.Name
End If
Next
Range("C9").Validation.Modify Formula1:=sSheetList
End Sub