Re-bonjour Steph
Je me suis amusé à trouver une petite optimisation à ton code !
Je te la propose tel quel :
Sub Macro1()
controle = Array('a', 'c', 'g', 't')
Dim compteur(3) As Integer
For i = 2 To 24
For j = 2 To 4
For k = 0 To 3
Cells(1, 6).Formula = '=iserror(find(''' & controle(k) & ''',''' & Cells(i, j) & ''',1))'
'ctrl = Cells(1, 6)
If Not (Cells(1, 6)) Then
compteur(k) = compteur(k) + 1
End If
Next k
Next j
Next i
For k = 0 To 3
x = MsgBox(controle(k) & ' compté : ' & compteur(k) & ' fois', vbOKOnly)
Next k
Cells(1, 6).Clear
endsub()
Cette macro permet sans difficulté d'augmenter le nombre de valeur à tester (k= nbre de valeurs-1, et maj de la variable controle avec les valeurs), le nombre de lignes i et le nombre de colonnes j
l'astuce utilisée étant de 'passer' par l'écriture d'une formule dans la feuille (ici en cellule(1,6)) qui n'st pas utilisée dans les datas et qui sera effacée en fin de traitement (le clear).
Elle est un peu plus courte que tous les elseif et case qui sont complexes à maintenir.
Bonne continuation