Repeter le lancement d'une macro

ki.net Messages postés 31 Statut Membre -  
ki.net Messages postés 31 Statut Membre -
Bonjour,
J'ai créé une macro qui copie la première ligne d'une feuille et la place sur un autre fichier
cette macro actionne une autre macro de mise à jour puis revient sur la première feuille et efface cette première ligne qui est donc remplacée par la deuxième ligne. La macro se ferme.
Pour la relancer je suis obligé de cliquer sur le bouton de commande que j'ai créé.
Problème, il faut le faire plus de 2000 fois (jusqu'a ce que ma feuille soit vide).
Il ya certainement un moyen, mais mes connaissances ne m'ont encore pas permis de trouver.
Merci de votre aide.
Trugarez ha Kenavo
Configuration: Windows Vista
Internet Explorer 7.0

6 réponses

  1. abdel008 Messages postés 11 Date d'inscription   Statut Membre
     
    moi aussi je suis un debutant en vba
    mais je pensse qu il y'as deus solutuion la premiere est d'etuliser une boucle for
    la deusieme c'est not end of file "EOF"
    vous dever poser la question sur comment faire la boucle for
    je pense que la repeonsse existe dans le forom
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    en supposant la colonne A remplie jusqu'en bas :
    For i = 1 To [A65536].End(xlUp).Row
    ' faire ceci
    next i

    te fera une boucle de 10 si la dernière donnée colonne A est en A10

    eric
    0
  3. abdel008 Messages postés 11 Date d'inscription   Statut Membre
     
    Tu peux faire un teste si la case est vide et de faire un break c'est à dire sortire de la boucle dès le contenue de la case est vide
    0
  4. ki.net Messages postés 31 Statut Membre
     
    Bonjour,
    J'ai essayé en vain de faire tourner ma macro avec:

    For i = 1 To [A65536].End(xlUp).Row
    ' faire ceci
    next i

    à chaque fois elle buggait.
    J'ai zappé une partie et inscrit

    For i = 1 To [A65536].Row

    Ma macro est partie et a continué son travail durant la nuit.
    OK ce matin.
    Merci pour votre aide.
    Je me pose toutefois une question, a quoi sert 'End(xlUp)', l'ai-je bien utilisé.

    Trugarez.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    le .End(xlUp) sert à détecter la dernière cellule utilisée dans la colonne pour que la boucle ne se fasse que sur ce qui est nécessaire.
    J'avais ecrit en supposant la colonne A remplie jusqu'en bas . Es-tu sûr que tu avais des données en colonne A ?? moi pas...

    For i = 1 To [A65536].Row
    autant mettre For i = 1 To 65536 puisque tu lui dis d'aller jusqu'au n° de ligne de la cellule A65536...

    eric
    0
  7. ki.net Messages postés 31 Statut Membre
     
    Bonjour,
    j'ai compris, la recherche se fait jusqu'à la dernière ligne de la feuille Excel soit 65536.
    J'avais limité le nombre de ligne à 2000 et la macro ne pouvait donc pas s'exécuter.
    Tout est OK pour moi.

    Merci Eric
    0