Здравствуйте! В столбце "А" формула подсчёта заполненных строк (без знака "%") столбца "В". Необходима формула которая при внесении новой фамилии в середину списка присваивала максимальный номер всего списка. Например: 1,2, (новая фамилия) 5,3,4,(новая фамилия) 8,6,7 и т.д. [moder]Переименовывайте тему в соответствии с Правилами форума![/moder] [moder]Нарушение исправлено.[/moder]
Здравствуйте! В столбце "А" формула подсчёта заполненных строк (без знака "%") столбца "В". Необходима формула которая при внесении новой фамилии в середину списка присваивала максимальный номер всего списка. Например: 1,2, (новая фамилия) 5,3,4,(новая фамилия) 8,6,7 и т.д. [moder]Переименовывайте тему в соответствии с Правилами форума![/moder] [moder]Нарушение исправлено.[/moder]bumnik
Можно при изменении листа проставлять, например так: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Or Target.Count > 1 Then Exit Sub If Target.Value <> "" Then If Cells(Target.Row, 1) = "" And InStr(Target.Value, "%") = 0 Then Cells(Target.Row, 1) = WorksheetFunction.Max(Columns("a:a")) + 1 End If End If End Sub
[/vba]
Можно при изменении листа проставлять, например так: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Or Target.Count > 1 Then Exit Sub If Target.Value <> "" Then If Cells(Target.Row, 1) = "" And InStr(Target.Value, "%") = 0 Then Cells(Target.Row, 1) = WorksheetFunction.Max(Columns("a:a")) + 1 End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Or Target.Count > 1 Then Exit Sub If Target.Value <> "" Then If Cells(Target.Row, 1) = "" And InStr(Target.Value, "%") = 0 Then Cells(Target.Row, 1) = WorksheetFunction.Max(Columns("a:a")) + 1 End If Else Cells(Target.Row, 1).ClearContents End If End Sub
[/vba]
В конец макроса добавьте [vba]
Код
Else Cells(Target.Row, 1).ClearContents End If
[/vba] все вместе вот так будет: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Or Target.Count > 1 Then Exit Sub If Target.Value <> "" Then If Cells(Target.Row, 1) = "" And InStr(Target.Value, "%") = 0 Then Cells(Target.Row, 1) = WorksheetFunction.Max(Columns("a:a")) + 1 End If Else Cells(Target.Row, 1).ClearContents End If End Sub