Private Sub Worksheet_Change(ByVal Target As Range) Application.ScreenUpdating = False Application.Calculation = xlCalculationAutomatic Application.EnableEvents = False If Range("C18") > 0 Then Sheets("Начальная").Rows(22).RowHeight = 21 Sheets("Начальная").Rows(23).RowHeight = 6.75 Sheets("Начальная").Rows(24).RowHeight = 21 Sheets("Начальная").Rows(25).RowHeight = 6.75 Sheets("Начальная").Rows(26).RowHeight = 21 Sheets("Начальная").Rows(27).RowHeight = 6.75 Sheets("Начальная").Rows(28).RowHeight = 21 Sheets("Начальная").Rows(29).RowHeight = 6.75 Sheets("Начальная").Rows(30).RowHeight = 21 Sheets("Начальная").Rows(31).RowHeight = 6.75 Sheets("Начальная").Rows(32).RowHeight = 21 Sheets("Начальная").Rows(33).RowHeight = 6.75 Sheets("Начальная").Rows(34).RowHeight = 21 Sheets("Начальная").Rows(35).RowHeight = 6.75 Sheets("Начальная").Rows(36).RowHeight = 21 Sheets("Начальная").Rows(37).RowHeight = 6.75 If Not Intersect(Target, Range("C18")) Is Nothing Then [C22] = "=IFERROR(VLOOKUP(C18,doplata,2),"""")" [C24] = "=IFERROR(VLOOKUP(C18,doplata,3),"""")" [C26] = "=IFERROR(VLOOKUP(C18,doplata,4),"""")" [C28] = "=IFERROR(VLOOKUP(C18,doplata,5),"""")" [C30] = "=IFERROR(VLOOKUP(C18,doplata,6),"""")" [C32] = "=IFERROR(VLOOKUP(C18,doplata,7),"""")" [C34] = "=IFERROR(VLOOKUP(C18,doplata,8),"""")" [C36] = "=IFERROR(VLOOKUP(C18,doplata,9),"""")" End If Else: If Range("C18") = 0 Then If IsEmpty(Range("C18")) Then Sheets("Начальная").Rows(22).RowHeight = 0 Sheets("Начальная").Rows(23).RowHeight = 0 Sheets("Начальная").Rows(24).RowHeight = 0 Sheets("Начальная").Rows(25).RowHeight = 0 Sheets("Начальная").Rows(26).RowHeight = 0 Sheets("Начальная").Rows(27).RowHeight = 0 Sheets("Начальная").Rows(28).RowHeight = 0 Sheets("Начальная").Rows(29).RowHeight = 0 Sheets("Начальная").Rows(30).RowHeight = 0 Sheets("Начальная").Rows(31).RowHeight = 0 Sheets("Начальная").Rows(32).RowHeight = 0 Sheets("Начальная").Rows(33).RowHeight = 0 Sheets("Начальная").Rows(34).RowHeight = 0 Sheets("Начальная").Rows(35).RowHeight = 0 Sheets("Начальная").Rows(36).RowHeight = 0 Sheets("Начальная").Rows(37).RowHeight = 0 End If End If End If If Range("C38") > 0 Then Sheets("Начальная").Rows(39).RowHeight = 6.75 Sheets("Начальная").Rows(40).RowHeight = 21 If Not Intersect(Target, Range("C38")) Is Nothing Then [C40] = "=IFERROR(VLOOKUP(C38,tarif.stavka,2),"""")" End If Else: If Range("C38") = 0 Then If IsEmpty(Range("C38")) Then Sheets("Начальная").Rows(39).RowHeight = 0 Sheets("Начальная").Rows(40).RowHeight = 0 End If End If End If If Range("C42") > 0 Then Sheets("Начальная").Rows(43).RowHeight = 6.75 Sheets("Начальная").Rows(44).RowHeight = 21 If Not Intersect(Target, Range("C42")) Is Nothing Then [C44] = "=IFERROR(VLOOKUP(C42,rascenka.za.edenicu,2),"""")" End If Else: If Range("C42") = 0 Then If IsEmpty(Range("C42")) Then Sheets("Начальная").Rows(43).RowHeight = 0 Sheets("Начальная").Rows(44).RowHeight = 0 End If End If End If If Target.Address(0, 0) = "C12" Then Sheets(2).Columns("AF:AI").EntireColumn.Hidden = False Sheets(3).Columns("AF:AI").EntireColumn.Hidden = False Sheets(4).Columns("AF:AI").EntireColumn.Hidden = False Sheets(5).Columns("AF:AI").EntireColumn.Hidden = False Sheets(6).Columns("AF:AI").EntireColumn.Hidden = False For i = 32 To 35 If Sheets(5).Cells(4, i) = 0 Then Sheets(2).Columns(i).EntireColumn.Hidden = True Sheets(3).Columns(i).EntireColumn.Hidden = True Sheets(4).Columns(i).EntireColumn.Hidden = True Sheets(5).Columns(i).EntireColumn.Hidden = True Sheets(6).Columns(i).EntireColumn.Hidden = True End If Next i End If If Target.Cells.Count > 1 Then GoTo EndS If Target.Address = "$C$18" Then If IsEmpty(Target) Then GoTo EndS If WorksheetFunction.CountIf(Worksheets("Список").Range("ФИО"), Target) = 0 Then lReply = MsgBox("Добавить введенную фамилию " & Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Worksheets("Список").Range("ФИО").Cells(Worksheets("Список").Range("ФИО").Rows.Count + 1, 1) = Target Else 'если нажали НЕТ - очищаем ячейку Target.ClearContents End If End If End If Sheets("Список").Range("B2:J1000").Sort Key1:=Sheets("Список").Range("B2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'этот код и поможет отсортировать в алфавитном порядке If Target.Cells.Count > 1 Then GoTo EndS If Target.Address = "$C$38" Then If IsEmpty(Target) Then GoTo EndS If WorksheetFunction.CountIf(Worksheets("Список").Range("Профессия"), Target) = 0 Then lReply = MsgBox("Добавить введенную профессию " & Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Worksheets("Список").Range("Профессия").Cells(Worksheets("Список").Range("Профессия").Rows.Count + 1, 1) = Target Else 'если нажали НЕТ - очищаем ячейку Target.ClearContents End If End If End If Sheets("Список").Range("K2:L1000").Sort Key1:=Sheets("Список").Range("K2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'этот код и поможет отсортировать в алфавитном порядке If Target.Cells.Count > 1 Then GoTo EndS If Target.Address = "$C$42" Then If IsEmpty(Target) Then GoTo EndS If WorksheetFunction.CountIf(Worksheets("Список").Range("Наряды"), Target) = 0 Then lReply = MsgBox("Добавить введенный наряд " & Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Worksheets("Список").Range("Наряды").Cells(Worksheets("Список").Range("Наряды").Rows.Count + 1, 1) = Target Else 'если нажали НЕТ - очищаем ячейку Target.ClearContents End If End If End If Sheets("Список").Range("P2:Q1000").Sort Key1:=Sheets("Список").Range("P2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'этот код и поможет отсортировать в алфавитном порядке If Target.Cells.Count > 1 Then GoTo EndS If Target.Address = "$C$10" Then If IsEmpty(Target) Then GoTo EndS If WorksheetFunction.CountIf(Worksheets("Список").Range("Мастера"), Target) = 0 Then lReply = MsgBox("Добавить мастера смены " & Target & " в выпадающий список?", vbYesNo + vbQuestion) If lReply = vbYes Then Worksheets("Список").Range("Мастера").Cells(Worksheets("Список").Range("Мастера").Rows.Count + 1, 1) = Target Else 'если нажали НЕТ - очищаем ячейку Target.ClearContents End If End If End If Sheets("Список").Range("O2:O1000").Sort Key1:=Sheets("Список").Range("O2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal 'этот код и поможет отсортировать в алфавитном порядке Application.Calculation = xlCalculationAutomatic EndS: Application.ScreenUpdating = True Application.EnableEvents = True End Sub