Copier coller sous condition

Mosade Messages postés 4 Date d'inscription samedi 12 juin 2010 Statut Membre Dernière intervention 8 août 2010 - 7 août 2010 à 17:55
Mosade Messages postés 4 Date d'inscription samedi 12 juin 2010 Statut Membre Dernière intervention 8 août 2010 - 8 août 2010 à 17:10
Bonjour,

J aimerais un peu d aide sur un programme....

Je souhaite copier coller des lignes dont la première cellule de la ligne a une certaine valeur (ici 21).
Puis les coller sur une autre feuille du même classeur
Je souhaite les coller des la troisième ligne de la nouvelle feuille. Or avec mon code les lignes collees le sont a la meme ligne que la feuille initiale (Feuil1 ligne4 se colle Feuil2 ligne4)....

Sub copy()
Worksheets("Paris").Activate
i = 1
While Cells(i, 1).Value <> ""
i = i + 1
If Cells(i, 1) = 21 Then
For j = 1 To 6
Worksheets("Paris").Cells(i, j).copy
Worksheets("Feuil3").Cells(i, j).PasteSpecial Paste:=xlPasteAll
Next
End If
Wend
End Sub

Merci pour votre aide

M.

2 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
7 août 2010 à 18:52
Sub copy()

Worksheets("Paris").Activate
i = 1
Do While Cells(i, 1).Value <> ""
    i = i + 1
    If Cells(i, 1) = 21 Then
        For j = 1 To 6
            Worksheets("Feuil3").Cells(3,j)=Worksheets("Paris").Cells(i, j) 
        Next j
    End If
loop
End Sub 

comme ça c'est plus propre et plus rapide
on peut même faire mieux en utilisant l'objet range à la place de la boucle for mais c'est un petit peu plus compliqué à écrire


si c'est la solution, penser : REPONSE ACCEPTEE
0
Mosade Messages postés 4 Date d'inscription samedi 12 juin 2010 Statut Membre Dernière intervention 8 août 2010
8 août 2010 à 17:10
Hello,

Merci j ai utilise cette boucle et c est pas mal du tout....
En fait plus globalement mon code permet de copier des cellules de Excel et de les mettre dans un mail sous formes de tableau

feuille de données - sélection de certaines lignes - copie sur excel a un autre endroit pour les regrouper - sélection de ces données tant que la première cellule des lignes lu par la boucle et non vide - et mise dans le mail sous forme de tableau

Le problème est que la boucle qui selectionne mais donnees rajoute une ligne supplémentaire,vide a mon tableau final. Ma boucle ne s arrête pas directement des que la ligne est vide et je ne comprends pas.....

Merci!!
0
Rejoignez-nous