Boucle For qui ne fait pas tout le job

Bonjour le forum,

Je viens vers vous pour éclairer ma lanterne au sujet d'une boucle qui ne fonctionne pas comme je le souhaiterai... Je suis trèèèèèès novice encore... ;-)

Evidemment, pour vous cela va paraître tellement simple... alors que pour moi, ça ne l'ai pas, apparemment...! ;-))

J'explique mon fichier:

J'ai une liste de 200 noms de clients (qui n'apparaît pas ici...)

J'ai une feuille Listing où apparaît les noms de mes clients qui ont passé commande, le montant de leur commande, et la date de la commande. (sur cette feuille, il n'y a tjs que 2 colonnes, noms et montants).

Je souhaiterai faire une macro qui crée une BD (Base de données) qui récolterait à chaque vente le montant de chaque client qui a commandé, sachant:

- que tous les clients ne commandent pas à chaque fois que je fais une vente. Il faudrait dc que chaque nom de client soit recherché dans la BD à chaque lancement de macro, et que le montant de leur commande soit reporté dans la colonne concernée, sur la bonne ligne...

- qu'à chaque nouvelle vente une nouvelle colonne soit "créée" (avec report de la date de la vente en ligne 2): c'est pour cela que j'ai déclaré les 2 tableaux dynamiques.

ça, c'est mon projet global.

Je n 'en suis pas du tout là pour l'instant, et souhaite essayer de trouver seule des solutions (VlookUp, outil recherche n° de ligne...), bref, mais pour l'instant seulement prendre les infos d'un coté pour les enregistrer de l'autre, eh bien cela fonctionne à moitié...

Je ne comprends pas pourquoi cela ne copie pas toutes les lignes mais seulement la dernière, sachant qu il semble que cela "lise" bien mon tableau listing...

Je bloque sur cette bête broutille et souhaite me faire éclairer ma lanterne pour pouvoir poursuivre mon petit "projet" de macro...

Merci pour votre aide!

12essai-bd.xlsm (22.45 Ko)

Ci-joint un fichier exemple

Cdt,

Bonsoir,

pour voir ce qui se passe (ou pas) vous pouvez effectuer un "pas à pas", allez sur le code vba, sélectionnez une ligne quelconque du code, puis appuyez sur la touche F8, cela jouera les lignes les unes après les autres et vous pouvez voir ce qui se passe à l'écran sur le classeur et vous pouvez connaitre la valeur des variable en positionnant le curseur sur le nom des ces dernières.

Cela vous permettra peut-être de comprendre le problème.

Sinon ici :

    For i = 0 To UBound(tab_listing)

        Sheets("BD").Cells(ligne_insertion, 1) = tab_listing(i, 0)     'idem, que dernière ligne...?
        Sheets("BD").Cells(ligne_insertion, 2) = tab_listing(i, 1)
        i = i + 1

    Next

ne serait-ce pas ligne_insertion qu'il faudrait incrémenter de 1 et non pas i ?

@ bientôt

LouReeD

Merci bcp LouReeD,

pr la ligne d'insertion incrémentée, ah bah oui, en fait peut être bien...! J'essaie ça sans faute demain... c'est déconcertant, ça paraît tellement simple pr les autres, là où moi, je réfléchis des heures!! ( pfff ;-)) )

Pour le pas à pas, merci, je vais essayer, je sais qu'il existe tant d'outil à ma disposition que je ne sais pas me servir...! J'essaie ça aussi sans faute, et reviens sur ce fil ensuite!

Merciiii...!

Bonjour LouReeD,

Ahlala, bien evidemment, incrémenter ligne_insertion plutôt que i fonctionne bcp mieux... (ne vous moquez pas...) ;-))

Merciii bcp bcp pour ces conseils et pistes de réflexion!

Je vais de ce pas essayer le pas-à-pas aussi, ça m'a l'air très instructif!!

Excellente journée!

Bonjour,

Merci pour votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "boucle qui fait pas tout job"