Contourner les limites de Match
Résolu
Verchain
Messages postés
12
Statut
Membre
-
Verchain Messages postés 12 Statut Membre -
Verchain Messages postés 12 Statut Membre -
Bonjour,
Avec le code ci-dessous qui fonctionne bien sur une dizaine de colonnes, je voudrais étendre le contrôle sur 470 colonnes (et toujours 122 lignes) pour que la macro contrôle bien l'ensemble des saisies dans l'entièreté de mon tableau.
Dès que je change la valeur de j au-delà de 20, un bug apparaît, qui doit être lié au nombre de cellules à vérifier.
Comment puis-je faire ça ?
Mon code :
Dim i As Variant
Dim j As Variant
For i = 6 To 126
For j = 5 To 41
CF = Array("LM", "LL", "SL", "PF", "PM", "BV", "NP", "IF", "FO", "SB", "AM", "RT", "CP", "RE", "JV", "DE", 52, "", 0, "52")
V = Cells(i, j).Value
TEST = Application.Match(Left(V, 2), CF, 0)
If IsError(TEST) Then Cells(i, j).Interior.Color = 255
Next
Next
Avec le code ci-dessous qui fonctionne bien sur une dizaine de colonnes, je voudrais étendre le contrôle sur 470 colonnes (et toujours 122 lignes) pour que la macro contrôle bien l'ensemble des saisies dans l'entièreté de mon tableau.
Dès que je change la valeur de j au-delà de 20, un bug apparaît, qui doit être lié au nombre de cellules à vérifier.
Comment puis-je faire ça ?
Mon code :
Dim i As Variant
Dim j As Variant
For i = 6 To 126
For j = 5 To 41
CF = Array("LM", "LL", "SL", "PF", "PM", "BV", "NP", "IF", "FO", "SB", "AM", "RT", "CP", "RE", "JV", "DE", 52, "", 0, "52")
V = Cells(i, j).Value
TEST = Application.Match(Left(V, 2), CF, 0)
If IsError(TEST) Then Cells(i, j).Interior.Color = 255
Next
Next
5 réponses
-
Même souci, la macro plante avec une 'Erreur d'exécution : 13 Icompatibilité de type" et le débogueur met en jaune :
TEST = Application.Match(Left(V, 2), CF, 0) -
Bonjour
Ajouter la déclaration de la variable vDim v As Variant
Mais vous pouvez vous en passer en écrivant directement le résultat dans testDim i As Variant Dim j As Variant For i = 6 To 126 For j = 5 To 475 CF = Array("LM", "LL", "SL", "PF", "PM", "BV", "NP", "IF", "FO", "SB", "AM", "RT", "CP", "RE", "JV", "DE", 52, "", 0, "52") TEST = Application.Match(Left(Cells(i, j), 2), CF, 0) If IsError(TEST) Then Cells(i, j).Interior.Color = 255 Next Next
Cdlt -
Bonjour
l'incompatibilité vient non de J mais de la valeur "zéro-nombre" dans ton array :
en effet ton left(cells(i,j),2) transforme le zéro dans ta cellule en "zéro-texte"
essaie avec
"JV", "DE","","0", "52")
le "52-nombre" ne sert à rien et est supprimé
-
Bonjour
En ligne 20 colonne "W" il ne trouve pas parce que la formule rechechev renvoi "#REF"
idem en ligne 23 colonne"Y"
Cdlt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -