Boucle copier/coller

Résolu/Fermé
gunbafo Messages postés 55 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai déjà posté une intervention pour le même sujet mais je n'ai pas réussi à avoir les indications nécessaires pour réaliser mon programme:
Explication: Le programme rédigé ci-dessous exécute une copier/coller de la ligne 3 d'une feuille à une autre.
Mon souhait est de réaliser ce même copier/coller de plusieurs lignes (un nombre variable de ligne à partir de la 3). Je voudrais donc créer une boucle sachant que la colonne D de la feuille où les données sont copiées est toujours renseignées (afin d'incrémenter).
______________________
Private Sub Image4_Click()

With Sheets("Point Ordo-Montage FKG1")

Sheets("Mail FKG1").Range("B3") = .Range("B3") & vbLf & .Range("C3") & vbLf & .Range("E3") & vbLf & .Range("F3")
Sheets("Mail FKG1").Range("C3") = .Range("A3") & vbLf & .Range("D3") & vbLf & .Range("G3")
Sheets("Mail FKG1").Range("D3") = .Range("H3")
Sheets("Mail FKG1").Range("E3") = .Range("I3")
Sheets("Mail FKG1").Range("F3") = .Range("J3")
Sheets("Mail FKG1").Range("G3") = .Range("K3")
Sheets("Mail FKG1").Range("H3") = .Range("L3")
Sheets("Mail FKG1").Range("I3") = .Range("M3")
Sheets("Mail FKG1").Range("J3") = .Range("N3")
Sheets("Mail FKG1").Range("K3") = .Range("O3")
Sheets("Mail FKG1").Range("L3") = .Range("P3")
Sheets("Mail FKG1").Range("M3") = .Range("Q3")
Sheets("Mail FKG1").Range("N3") = .Range("R3")

End With

End Sub
____________________
Merci à celui ou celle qui répondra
J'attends vos suggestions

A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
Salut michel_m,
Je viens de lire ce post.
Effectivement la réponse y était déjà bien indiquée.
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
Bonjour,
Une boucle qui va débuter en 3ème ligne et terminer en dernière ligne (colonne D) :

Private Sub Image4_Click() 
Dim DernLign As Integer, Lign As Integer
With Sheets("Point Ordo-Montage FKG1") 
    DernLign = .Cells(65536, 4).End(xlUp).Row
        For Lign = 3 To DernLign
            Sheets("Mail FKG1").Cells(Lign, 2) = .Cells(Lign, 2) & vbLf & .Cells(Lign, 3) & vbLf & .Cells(Lign, 5) & vbLf & ..Cells(Lign, 6)  
            Sheets("Mail FKG1").Cells(Lign, 3)  = .Cells(Lign, 1) & vbLf & .Cells(Lign, 4) & vbLf & .Cells(Lign, 7) 
            Sheets("Mail FKG1").Cells(Lign, 4)  = .Cells(Lign, 8) 
            Sheets("Mail FKG1").Cells(Lign, 5)  = .Cells(Lign, 9) 
            Sheets("Mail FKG1").Cells(Lign, 6)  = .Cells(Lign, 10) 
            Sheets("Mail FKG1").Cells(Lign, 7)  = .Cells(Lign, 11) 
            Sheets("Mail FKG1").Cells(Lign, 8)  = .Cells(Lign, 12) 
            Sheets("Mail FKG1").Cells(Lign, 9)  = .Cells(Lign, 13) 
            Sheets("Mail FKG1").Cells(Lign, 10)  = .Cells(Lign, 14) 
            Sheets("Mail FKG1").Cells(Lign, 11)  = .Cells(Lign, 15) 
            Sheets("Mail FKG1").Cells(Lign, 12)  = .Cells(Lign, 16) 
            Sheets("Mail FKG1").Cells(Lign, 13)  = .Cells(Lign, 17) 
            Sheets("Mail FKG1").Cells(Lign, 14)  = .Cells(Lign, 18) 
    Next Lign
End With 
End Sub 


Pour une meilleure compréhension, je t'ai laissé le "schéma" de code initial. Sache qu'il est possible de le raccourcir.
0
gunbafo Messages postés 55 Statut Membre 3
 
Merci Pijaku pour ta réponse.

C'est exactement ce que je voulais.
Michel_m, maintenant que je comprends un peu plus le système de boucle, je vais pouvoir tester ton "schéma" raccourci que tu m'as conseillé dans ma première demande.

Pijaku, Que me propose tu pour raccourcir mon code??
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 765
 
Pijaku, Que me propose tu pour raccourcir mon code?? : De suivre l'autre sujet.

Pour rappel, mémoire ou simplement pour info, sur CommentCaMarche.net (comme sur les forums d'entraide en général), on n'ouvre pas 2 sujets pour la même question.

Je n'aurais donc pas du te répondre ici ce matin, mais sur l'autre sujet. Je te conseille donc de continuer ta discussion initiale ou je vais faire un copier/coller de ma réponse.

A tout de suite.
0