If Application.WorksheetFunction.CountIf

Bonjour le forum

j'ai une alerte avec cette ligne de code en cas de double saisie sur la colone AD

If Application.WorksheetFunction.CountIf(Range("AD:AD"), TextBox20.Value) = 2 Then
    MsgBox "déjà saisie"
    End If

Mais est t'il possible d'avoir plusieurs critères (colonne C combobox2 et D dtpicker 1 et AD textbox20. )

merci de vos réponse.

et bonne semaine.

réponse trouvée

If Application.WorksheetFunction.CountIf(Range("C:C"), ComboBox2.Value) > 1_ 
Or Application.WorksheetFunction.CountIf(Range("F:F"), DTPicker1.Value) >1_ 
Or Application.WorksheetFunction.CountIf(Range("N:N"), TextBox4.Value) >1 Then

MsgBox "SAISIE DEJA EFFECTUEE "
exit sub
End If

merci tout de même

Bonjour,

Ta demande était:

reinruof77 a écrit :

est t'il possible d'avoir plusieurs critères (colonne C combobox2 et D dtpicker 1 et AD textbox20. )

... avec les 'et' en gras ... mais dans la solution que tu as trouvée, tu utilises des 'Or' pour combiner les conditions ... Est-ce bien normal?

bonjour

en effet cela ne fonctionne pas

une idée peut être?

Bonsoir,

Des solutions, il y en a sans doute plusieurs ... tu pourrais déjà essayer WorksheetFunction.CountIfs (qui correspond à NB.SI.ENS).

Tu pourrais aussi charger tes colonnes de C à N dans un tableau en mémoire. On lirait chaque ligne dudit tableau et si les trois valeurs sont rencontrées une fois au moins, on affiche ton message et on sort de la boucle.

c'est bon solution trouvé.

tout = ComboBox2.Value & DTPicker1.Value & TextBox4.Value
For N = 3 To Range("A" & Rows.Count).End(xlUp).Row
     If Range("C" & N) & Range("F" & N) & Range("N" & N) = tout Then
         MsgBox "toto"
         Exit Sub
     End If
Next

merci

Rechercher des sujets similaires à "application worksheetfunction countif"