Contourner les limites de Match

Résolu/Fermé
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018 - 15 avril 2016 à 15:46
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018 - 18 avril 2016 à 09:41
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




5 réponses

Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
15 avril 2016 à 16:34
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)
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
15 avril 2016 à 16:37
A mon avis c'est le CF qu'il ne comprends pas.
Tu as mis un espion sur V et CF?
0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018 > Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020
16 avril 2016 à 22:03
Non, je ne sais pas comment ça fonctionne, les espions, je ne suis pas super au point en VBA...
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
17 avril 2016 à 20:07
Tape espions vba sur google ...
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
17 avril 2016 à 06:47
Bonjour
Ajouter la déclaration de la variable v
Dim v As Variant

Mais vous pouvez vous en passer en écrivant directement le résultat dans test
    Dim 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
0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
17 avril 2016 à 14:54
Bonjour, j'ai essayé des deux manières, et même en copiant 50 fois le code pour découper mon grand nombre de colonnes en des séries plus compactes... Sans succès.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
17 avril 2016 à 15:04
RE
Bizarre, ça fonctionne bien chez moi, vous serait-il possible de déposer votre fichier (sans données personnelles) sur cjoint .com afin que l'on puisse voir où se situe le problème?
0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018 > Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023
18 avril 2016 à 07:42
Bonjour,

Le lien fichier :

http://www.cjoint.com/c/FDsfQEmwDz0
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 avril 2016 à 18:22
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é


0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
18 avril 2016 à 07:44
Bonjour, j'ai essayé cette modification, le type d'erreur a changé :

"Erreur d'exécution 1004 : erreur définie par l'application ou par l'objet"
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
18 avril 2016 à 08:44
Bonjour
En ligne 20 colonne "W" il ne trouve pas parce que la formule rechechev renvoi "#REF"
idem en ligne 23 colonne"Y"
Cdlt
0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
18 avril 2016 à 09:09
Merci, je n'avais pas vu, j'ai corrigé mais ça ne résoud pas le problème pour l'instant...
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018
18 avril 2016 à 09:25
RE
Vous avez encore pleins d'erreurs '#NA" ligne 29 colonne BG à BK en ligne 3 colonne BK et peut-être d'autres encore. Vérifiez tout votre tableau.
Je dois m'absenter pour la journée, quelqu'un d'autre regardera sûrement au cas ou le problème subsisterai encore.
Cdlt
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 18/04/2016 à 09:21
Bonjour

mettre V=cells(i,i) APRES les deux FOR

car actuellement i et j n'étant indexés on a
V=cells(0,0) --->erreur !!!
0
Verchain Messages postés 12 Date d'inscription jeudi 7 avril 2016 Statut Membre Dernière intervention 26 février 2018 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
18 avril 2016 à 09:41
Merci à tous, après corrections et application de vos conseils, ça fonctionne finalement...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
15 avril 2016 à 15:49
Salut,

Déclare les en long pour voir.
-1