VBA : Copier des données d'une feuille à l'autre

rugbyman

XLDnaute Nouveau
Bonjour à tous et à toutes !

Je vous expose mon problème :
dans un classeur excel, composé de 2 feuilles :
feuille 1 : un modèle de tableau avec plusieurs champs
Feuille 2 : une liste de données (nom, prenom, telephone,...)

Je souhaiterais controler les donnees de ma feuille 2 ligne par ligne, et copier certaines cellules de ma feuille 2 vers ma feuille 1 ( par exemple copier les données de la cellule B2 de ma feuille 2 en C4 de ma feuille 1)
une fois que cette donnée est copiée, je souhaiterais imprimer la feuille 1 et passer à la seconde ligne de ma feuille 2.
Ceci jusqu'à ce qu'il n'y ait plus de lignes renseignées.

Pour info : les cellules de départ sur la feuille 2 sont toujours dans la même colonne, et la destination dans la feuille 1 est toujours la même case. (B2 feuille 2 en C4 feuille 1, B3 feuille 2 en D4 feuille 1, etc...)

Je vous remercie d'avance pour votre aide, car je ne sais comment commencer ni quelle fonction utiliser.
Je pensais à une boucle, vu qu'il y a plusieurs lignes à faire depuis la feuille 2.

voici en pièce jointe un modele de ce tableau anonymisé.

D'avance merci à tous et à toutes.
 

Pièces jointes

  • copievba.xlsx
    16 KB · Affichages: 445
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : VBA : Copier des données d'une feuille à l'autre

Bonjour, rugbyman, le Forum,

Peut-être ainsi :

Code:
Sub Imprimer()
'Adaptation d'un code de BrunoM45 (Merci !)
Dim Lig As Long, DerLig As Long
Dim ShtD As Worksheet, ShtF As Worksheet
Set ShtD = Sheets("Feuil2")
Set ShtF = Sheets("Feuil1")
DerLig = ShtD.Range("A65536").End(xlUp).Row
    For Lig = 2 To DerLig
        ShtF.Range("g2") = ShtD.Range("a" & Lig)
        ShtF.Range("c4") = ShtD.Range("b" & Lig)
        ShtF.Range("c5") = ShtD.Range("c" & Lig)
        ShtF.Range("c7") = ShtD.Range("f" & Lig)
        ShtF.Range("c8") = ShtD.Range("g" & Lig)
        ActiveWindow.SelectedSheets.PrintPreview 'pour aperçu
        'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'pour imprimer
    Next
End Sub
A bientôt :)
 

Papou-net

XLDnaute Barbatruc
Re : VBA : Copier des données d'une feuille à l'autre

Bonsoir rugbyman, et bienvenue,

Vois si le fichier joint te convient : il te suffit de cliquer sur le bouton "Édition".

Si oui, remplace "Feuil1.PrintPreview" par "Feuil1.PrintOut".

Espérant avoir répondu.

Cordialement.



Edit : bonsoir DoubleZero
 

Pièces jointes

  • Copie de copievba.xlsm
    27.9 KB · Affichages: 698

rugbyman

XLDnaute Nouveau
Re : VBA : Copier des données d'une feuille à l'autre

Bonsoir DoubleZero, je te remercie, ca marche très bien.
J'y ai juste rajouté un clearcontents à la fin pour vider mon formulaire original.
voici le code complet :

Sub Imprimer()
'Adaptation d'un code de BrunoM45 (Merci !)
Dim Lig As Long, DerLig As Long
Dim ShtD As Worksheet, ShtF As Worksheet
Set ShtD = Sheets("Feuil2")
Set ShtF = Sheets("Feuil1")
DerLig = ShtD.Range("A400").End(xlUp).Row
For Lig = 2 To DerLig
ShtF.Range("g2") = ShtD.Range("a" & Lig)
ShtF.Range("c4") = ShtD.Range("b" & Lig)
ShtF.Range("c5") = ShtD.Range("c" & Lig)
ShtF.Range("c7") = ShtD.Range("f" & Lig)
ShtF.Range("c8") = ShtD.Range("g" & Lig)
ActiveWindow.SelectedSheets.PrintPreview 'pour aperçu
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True 'pour imprimer
Range("G2:H2, C4:D4, C5:D5, C7:D7, C8:D8").ClearContents

Next
End Sub

Encore merci et bonne soirée à tous.

Rugyman.
 

Discussions similaires

Réponses
2
Affichages
147

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 848
dernier inscrit
Djigbenou