Boucle if plusieurs cdts

Bonjour à tous je viens vers vous pour un "probleme" de taille de code ... je vous explique :

J'ai un code qui me permet de verifier dans une colonne de tableau si les valeurs sont < 1820 et si la colonne d'à coté il ya ecrit :"WEG" alors on incremente un compteur qu'on fera apparaitre dans une cellule un peu plus bas.. mon problème est que ce code doit s'appliquer pour 7 autres termes différents que "WEG" (toujours en vérifiant que la colonne à coté <1820)

Mais aussi , l'autre partie du code demande à verifier si on a le terme "WEG" et que dans la colonne à coté il y a aussi "GB" alors on incrémente un autre compteur qu'on fera apparaitre dans une cellule

Le probleme aussi c'est que je dois vérifier pour WEG avec GB mais aussi WEG avec GP , WEG avec GE etc

J'arrive à obtenir ce que je veux mais le problème c'est que ca fait beaucoup de ligne de code car à chaque foi je repete la procédure en changeant les termes à chercher et les compteurs à incrémenter ..

Actuellement :

Voici mon code

Sub compteurMot()

Dim cptw, cptl, cpth, cptc, cpts, cptt, cptiGB, cptiPB, cptiGP As Integer

Dim G, H, I

Sheets("Feuil1").Select

For I = 4 To 44

If Cells(I, 26).Value < 1820 And Cells(I, 29).Value = "WEG" Then

cptw = cptw + 1

Cells(52, 21) = cptw

End If

If Cells(I, 26).Value < 1820 And Cells(I, 29).Value = "WEG" And Cells(I, 28) = "GB" Then

cptiGB = cptiGB + 1

Cells(53, 21) = cptiGB

End If

If Cells(I, 26).Value < 1820 And Cells(I, 29).Value = "Leroy Somer" Then

cptl = cptl + 1

Cells(52, 22) = cptl

End If

If Cells(I, 26).Value < 1820 And Cells(I, 29).Value = "Leroy Somer" And Cells(I, 28) = "GB" Then

cptiGB = cptiGB + 1

Cells(53, 22) = cptiGB

End If

J'ai mit le code avec juste 2 termes différents mais imaginez que ce code ce répète pour un grand nombre de marque autre que WEG et Leroy Somer...

Je ne sais pas si j'ai été clair désolé..

merci d'avance

Bonjour,

et on doit créer l'exemple ou tu fais une copie anonyme du tiens ?

P.

8test.xlsm (19.16 Ko)

Pardon fausse manip voici le fichier

re,

puisque tu es en 2013, pourquoi refaire la roue ?

un TCD et segment peut t'aider et rapidement

P.

9test-2.xlsm (26.73 Ko)

merci pour la réponse , elle apporte un bon complement qui permet de voir quel moteur est de tel marque avec tel accouplement

cependant, le tableau d'en bas est nécessaire pour moi car il permet au futur utilisateur d'avoir une vision d'ensemble rapide, mais je n'arrive pas à simplifier mon code sans faire "la roue" ...

re,

en U53 , essaie ceci:

=SOMMEPROD((Tableau3[Accouplement]=$T53)*(Tableau3[Marque]=Tableau7[[#En-têtes];[WEG]])*(Tableau3[durée restante avant remplacement (jours)]<1820))

P.

La formule ne fonctionne pas elle me compte 2 moteurs alors qu'1 seul WEG avec un accouplement GB a une MTBF inferieur à 1820 (soit 5 ans en jours)

Le TCD à droite répond: 2 moteurs

A20 et A26, ce n'est pas exact ?

P.

il y a bien 2 moteurs WEG avec accouplement GB , cependant 1 seul à une MTBF < à 1820 (A26) ; A20 lui a 2557

Au temps pour moi....

=SOMMEPROD((Tableau3[Accouplement]=$T50)*(Tableau3[Marque]=Tableau7[[#En-têtes];[WEG]])*(Tableau3[MTBF]<1820))

j'avais pris la colonne "AA" au lieu de "Z"

P.

merci de ta reponse en effet cela fonctionne.

Parcontre je suis plus "à l'aise" avec le vba d'ou ma question pour réduire mon code si possible..

Ta solution est une solution alternative qui fonctionne je l'inculerai dans mon doc final

Si tu connais un systeme de boucle pour le code je suis preneur surtout que ce type de code redondant est utilisé dans d'autre fichier ...


merci de ta reponse en effet cela fonctionne.

Parcontre je suis plus "à l'aise" avec le vba d'ou ma question pour réduire mon code si possible..

Ta solution est une solution alternative qui fonctionne je l'inculerai dans mon doc final

Si tu connais un systeme de boucle pour le code je suis preneur surtout que ce type de code redondant est utilisé dans d'autre fichier ...

wes13200 a écrit :

merci de ta reponse en effet cela fonctionne.

Parcontre je suis plus "à l'aise" avec le vba d'ou ma question pour réduire mon code si possible..

Ta solution est une solution alternative qui fonctionne je l'inculerai dans mon doc final

Si tu connais un systeme de boucle pour le code je suis preneur surtout que ce type de code redondant est utilisé dans d'autre fichier ...

Moi, j'évite le VBA sur des fichiers de quelques dizaines de lignes, surtout si des formules sommeprod/somme.si.ens ou un tcd peut faire le boulot à ma place.

L'informatique est un outil qui permet d'en faire moins et plus vite A mon avis, ça a été inventé par un paresseux et c'est pour ça que j'aime ces outils

pardon double message bug d'actualisation


oui je comprends mais le probleme c'est que je ne maitrise pas les formules excel mais un peu plus le vba (formater scolaire quoi) et du coup je me retrouve embeté meme si j'arrive à mes fin mais avec un code tres long et tres redondant ce qui n'est pas top top ..! merci en tout cas pour tes reponses

Rechercher des sujets similaires à "boucle cdts"