Amelioration macro :plusieur conditions if

Bonjour ,

Je veux mettre en place un control de cohérence .Entre plusieurs fichiers de départ et un fichier de sortie qui synthétise l'information que ma macro me donne en sortie .Il me faut vérifier en plus que les valeurs dans mes cellules dans les fichier de départ sont les mêmes que dans le fichier de sortie .En gros que ma macro fait bien le job qu'on lui a demandé de faire .

J'ai donc mis dans ma macro La condition if pour vérifier pour chaque cellule

If ...then

Elseif ... then ...

elseif .... then

End if

etc ...

Dans mon cas je me retrouve avec plus d'une dizaine de else if ...Je ne suis pas experte mais je suppose que ce n'est pas le plus le plus pratique et le mieux. C'est pourquoi je sollicite votre aide.Y'a t'il une façon plus efficace de le faire ?De plus je précise que je ne connais pas les valeurs à l'avance .Je n'ai aucune idée des fichiers mis à part leur format qui est le même .

Merci par avance ,j'espère que tout ça inspirera quelqu'un .Grace à ce forum j'ai déjà pu apprendre pas mal de chose en vba et c'est génial .

Cordialement ,

Bonjour

En général pour ces cas utiliser un SELECT CASE

Bonjour ,

Merci du retour

Effectivement j'ai pensé au SELECT CASE mais dans mon cas à chaque fois le numero de cellule change .

Exemple

If (Worksheets("M").Range("L17") - Worksheets("M").Range("F17")) = Worksheets("M1").Range("E12") Then

Worksheets("control").Range("G12") = "OK"

ElseIf (Worksheets("M").Range("L25") + Worksheets("M").Range("F25") - Worksheets("M").Range("L54") - Worksheets("M").Range("F54")) = Worksheets("M1").Range("E13") Then

Worksheets("control").Range("G13") = "OK"

..................................................................................

...............................................................................

End if

Honnêtement je ne vois pas comment utiliser le SELECT CASE dans ce cas .

RE

Pourquoi ne pas utiliser des formules dans la feuille ?

Sans le contexte c'est un peu difficile de voir la logique

Bonjour ,

Merci pour ton retour ,

J'ai mit en pièce jointe un exemple de fichier d'entrés et de sortie .

Et donc avec ces fichiers là l'idée est de poser ce genre de conditions .

if Worksheets("fichier2").Range("D2") = Worksheets("finale").Range("D2") Then

Worksheets("control").Range("D2") = "OK"

..................................................................................

...............................................................................

Ainsi de suite ligne par ligne

Cdlt

9fichier2.xlsx (8.62 Ko)
10fichier1.xlsx (8.69 Ko)

Bonjour

A voir tes fichiers comme tu les présentes ,la formule RecherchV devrait convenir

pas besoin de VBA .

A moins que tes fichiers originaux n'aient rien à voir avec ceux que tu as joint

Cordialement

Bonjour ,

merci pour ton retour

Mes fichiers réels sont plus complexe mais l'idée reste la même .

Dans ce cas comment fonctionnerai cette fonction rechercheV ,surtout s'il sagit de plus de 6000 lignes on peut l'utiliser ?

Cdlt

Dans le tableau contrôle tu veux obtenir quoi comme résultat?

Re-Bonjour ,

Dans le tableau controle l'idéée etait d'avoir une mention OK si le test réalisé(comparaison de la valeur dans la cellule du fichier d'entré et la valeur dans cellule correspondante du fichier de sortie )état la même.

Cdlt

Rechercher des sujets similaires à "amelioration macro conditions"