Private Sub Worksheet_Change(ByVal Target As Range) Dim navn As String, antal As Integer If Target.Address >= "$B$5" And Target.Address <= "$I$10" Then navn = Target
If navn <> "" Then antal = tælAntal(navn)
If antal > 3 Then MsgBox navn & " forekommer mere end 3 gange" End If End If End If End Sub Private Function tælAntal(navn) Dim antal As Integer anal = 0 For Each cc In Range("B5:I10").Cells If navn = cc.Text Then antal = antal + 1 End If Next cc
Mht. datavalidering bruger jeg det til en navneliste i forvejen, så den går ikke.
VBA'en giver mig fejl når jeg sletter indholdet i en celle, og man kan godt sætte sit navn på over 3 gange, da man blot får en advarsel og ikke bliver stoppet, kan måske løses ved at slette den aktive celle når man får advarslen?
Private Sub Worksheet_Change(ByVal Target As Range) Dim navn As String, antal As Integer If Target.Address >= "$B$5" And Target.Address <= "$I$10" Then navn = Target
If navn <> "" Then antal = tælAntal(navn)
If antal > 3 Then Target.ClearContents 'tilføjelse MsgBox navn & " forekommer mere end 3 gange" End If End If End If End Sub Private Function tælAntal(navn) Dim antal As Integer anal = 0 For Each cc In Range("B5:I10").Cells If navn = cc.Text Then antal = antal + 1 End If Next cc
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.