Buonasera
Uso questo codice trovato in internet e modificato per il mio uso, per bloccare l'nserimento di un nome dopo che è stato inserito per tre volte.
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim sConta As String
Dim lConta As Long
Dim rng As Range
'
If Target.Cells.Count = 1 Then
Set rng = Me.Range(Me.Cells(2, 7).Address & ":" & Me.Cells(150, 7).Address)
If Not Intersect(Target, rng) Is Nothing Then
sConta = "=COUNTIF(g2:g150" & Target.Row & ":" & f(4) & Target.Row & "," & Target.Address & ")"
lConta = Evaluate(sConta)
If lConta > 3 Then
Beep
MsgBox "Attenzione, nome non più inseribile"
Target.Clear
Exit Sub
End If
End If
End If
'
End Sub
Private Function f(ByVal lCol As Long) As String
f = Split(Cells(1, lCol).Address( _
True, False, xlA1, False), "$")(0)
End Function
__________________________________________
Private Function f(ByVal lCol As Long) As String
f = Split(Cells(1, lCol).Address( _
True, False, xlA1, False), "$")(0)
End Function
___________________________________________
Funziona se il range di ricerca è nella tabella dove ho inserito il codice.
Il mio problema è che oltre a questa tabella, ne ho un'altra su un altro foglio (con lo stesso range di ricerca) e non so come fare per verificare, che l'inserimento del nome non sia superiore a (3).
In pratica se il nome "Massimo" è già presente due volte in una tabella, nell'altra devo poterlo inserire una sola volta (bloccando un quarto tentativo di inserimento).
Gli inserimenti li faccio tramite una UserForm.
Spero possiate darmi un'aiuto, grazie.