|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Développeur informatique Inscription : février 2009 Messages : 37 ![]() |
bonjour,
j'ai un fichier excel, et je veux copier des lignes selon deux conditions sur deux colonnes, pour cela j'ai essayé avec un macro mais j'arrive pas à bien faire les boucles, mon table initial est de la forme: id cof nom 904550690 5 BADOILPATRICK 902023220 2 BADOILPATRICK 904603149 4 BERNARDXAVIER 904946320 5 BERNARDXAVIER 904946314 5 BERNARDXAVIER 902022326 5 RAMONDPHILIPPE 904463576 5 RAMONDPHILIPPE et je copier selon le nom et le cof: si j'ai le même nom je copie la ligne avec le cof le plus petit, si le cof et le nom sont egaux je copie tout, c'est a dire le résultat souhaité est: id cof nom 902023220 2 BADOILPATRICK 904603149 4 BERNARDXAVIER 904946314 5 BERNARDXAVIER 902022326 5 RAMONDPHILIPPE 904463576 5 RAMONDPHILIPPE et mon macro Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Tes données sont triées par nom?
__________________
Cordialement. |
|
|
10
|
|
|
#3 |
|
Membre à l'essai
![]() geegee geegee Inscription : novembre 2010 Messages : 20 ![]() |
Bonjour,
Code :
=DECALER('Calcul kit visserie'!$A$13:$f$76;1;;NB.SI('Calcul kit visserie'!$A$13:$A$76;Nommenclature!$B$7)-1) Code :
=SI($B$4=VRAI;INDEX(Visserie;LIGNE($A36)-35;COLONNE(A1)+1);"") J'ai imbriqué la fnction EQUIV dans la fonction DECALER. En effet la fnction EQUIV me donne la le nombre de cellule entre mon origine et la cellule trouvée. Il ne reste plus qu'a intégrer le resultat dans l'option DECALER et le tur est joué. j'ai joint mon fichier pur ce que cela pourrait intéresser. NB : les cellule doivent impérativmeent être au format TEXTE pur fonctionner avec EQUIV ( en tout cas chez moi) |
|
|
00
|
|
|
#4 | ||
|
Invité régulier
![]() Développeur informatique Inscription : février 2009 Messages : 37 ![]() |
rebonjour,
mergato: mes données nes sont pa triées geegee13 merci pour ta reponse, je vais essayer ta solution, mais en VBA je peur comprndre mieux, je ne connais pas les fonctions que t'as utilisé, je vais chercher leurs documentation merci bonjour, j'ai essayé avec ce code mais j'ai l'erreur: erreur d'execution 1004, erreur definie par l'application ou par l'objet. Code :
|
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Désolé, mais je n'ai pas bien compris Le résultat escompté eu regard de ton exemple donné en #1.
Si tu as un nom qui se répète plusieurs fois avec des coefficient tous différent, alors tu copie seulement la ligne avec le coefficient minimal. Si tu as un nom avec qui se répète avec un unique coefficient, alors tu copie toutes les lignes. Si tu as un nom qui se répète avec au moins un coefficient différent et avec au moins un coefficient unique, alors tu copie toutes les lignes c'est ça? ![]() Je pense que tu devrai expliquer davantage (avec un exemple parlant)
__________________
Cordialement. |
|
|
10
|
|
|
#6 |
|
Invité régulier
![]() Développeur informatique Inscription : février 2009 Messages : 37 ![]() |
bonjour,
oui mercatog, tu a bien compris, à partir de mon 1er exemple: id cof nom 904550690 5 BADOILPATRICK 902023220 2 BADOILPATRICK deux noms identiques avec des cof différents alors je garde la ligne avec le cof le plus petit: 902023220 2 BADOILPATRICK 904603149 4 BERNARDXAVIER 904946320 5 BERNARDXAVIER 904946314 5 BERNARDXAVIER trois noms identiques avec des cof différents alors je garde la ligne avec le cof le plus petit: 904603149 4 BERNARDXAVIER 902022326 5 RAMONDPHILIPPE 904463576 5 RAMONDPHILIPPE deux noms identiques avec des cof egaux alors je garde les deux lignes 902022326 5 RAMONDPHILIPPE 904463576 5 RAMONDPHILIPPE j'espère que je suis bien claire (mon fichier contient 5000 lignes) Merci davance |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com