Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 27/08/2008, 10h39   #1 (permalink)
Membre du Club
 
Date d'inscription: juillet 2008
Messages: 93
Par défaut problème de boucle

Bonjour,
Je cherche à copier toutes les cellules des colonnes A et B à partir de la ligne 6 jusqu'à la dernière cellule non vide de la colonne A. Pour cela, j'utilise ce programme:

Code :
 
    Dim i, j As Integer   
        i = 6   
    Do While (Range("A" & i).Value <> "")
         Range("A" & i & ":B" & i).Select
        Selection.Copy
        Sheets("Récap_3ème tri_V_élo1").Select
        Range("A" & i + 7&).Select
        ActiveSheet.Paste
         i = i + 1          
    Loop
 
Mon problème est qu'excel sort de la boucle après la 1ère ligne qu'il copie alors que ce n'est pas la dernière cellule non vide.
Est ce que quelqu'un aurait une solution ?
Merci d'avance.
frisou65 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 10h47   #2 (permalink)
Membre Confirmé
 
Avatar de zandru
 
Date d'inscription: mars 2008
Localisation: 89 et 91
Âge: 23
Messages: 242
Par défaut

Bonjour,

il faut réactiver ta feuille de départ à la fin de ton traitement, sinon la condition du while s'applique sur ta feuille Sheets("Récap_3ème tri_V_élo1") qui est la feuille active lors du deuxieme bouclage.

Code :
    Dim i, j As Integer   
        i = 6   
    Do While (Range("A" & i).Value <> "")
         Range("A" & i & ":B" & i).Select
        Selection.Copy
        Sheets("Récap_3ème tri_V_élo1").Select
        Range("A" & i + 7&).Select
        ActiveSheet.Paste
        Sheet("feuil1").select 'feuil1 est le nom de ta feuil de départ
         i = i + 1          
    Loop
__________________
Pour Noël >>>cliquer ici, c'est bien<<<
A lire :Les Règles, Les boutons du forum, sujet de discussion explicite ? et #CODE# sinon
.Aide-toi et le ciel t'aidera F1 / FAQ/ Google ...
zandru est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 10h51   #3 (permalink)
Membre du Club
 
Date d'inscription: juillet 2008
Messages: 93
Par défaut

Merci beaucoup. Ta solution marche nickel.
frisou65 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2008, 10h58   #4 (permalink)
Membre Expert
 
Avatar de Godzestla
 
Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 024
Par défaut

Salut,

pour info c'est plus propre et plus rapide comme ceci. (évite les selects qui ralentissent le code).

Code :
 
    Dim i, j As Integer
        i = 6
    With ActiveSheet
        Do While (.Range("A" & i).Value <> "")
        .Range("A" & i & ":B" & i).Copy
        ActiveSheet.Paste Destination:=Worksheets("Récap_3ème tri_V_élo1").Range("A" & i + 7)
        i = i + 1
    Loop
    End With
 
__________________
Cordialement
G@dz

Question technique par MP = Vous avez des neurones. Sollicitez-les. Question mal formulée réponse inadaptée.
Si la solution est absente, le problème n'est plus.
Godzestla est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide