Code de macro pour copier bien et au bon endroit : comment? - exemple

D

Debutan

Guest
Bonjour a tous,
Un petit entrainement pour les bons vbscript-eur. (4petites macros)
Dans le fichier joint, 1 classeur qui contient 4 feuilles de données (1 remplie et 3 vides) et 4 boutons de commande associés de copie dans la feuille 1 vers chacune d'elle.

Dans la premiere feuille (feuil1)
- on a les colonnes de données nom, prenom, adresse, cp, ville, tel, email

Dans la deuxieme feuille (feuil2)
- on a juste les entetes de colonne : nom, prenom, email

Dans la deuxieme feuille (feuil3)
- on a juste les entetes de colonne : prenom, nom, adresse, cp, ville

Dans la derniere feuille (feuil4)
- c'est une feuille vide dans laquelle on veut copier toute la feuille 1

L'objectif est d'activer la copie des données quand on clique sur les boutons de commande associés. il faut donc compléter le code des macros des 4 boutons commande :

- de la feuille 1 dans la feuille 2 après avoir cliqué sur le bouton copier vers la feuille 2
- de la feuille 1 dans la feuille 3 après avoir cliqué sur le bouton copier vers la feuille 3
- de la feuille 1 dans la feuille 4 après avoir cliqué sur le bouton copier vers la feuille 4

Y a t'il plusieurs moyens de le faire (automatique? avec nom de plage? range? ou autres)?
Merci a tous de votre attention!!!
Debutan
 

Pièces jointes

  • Classeur1.zip
    11 KB · Affichages: 49
  • Classeur1.zip
    11 KB · Affichages: 53
  • Classeur1.zip
    11 KB · Affichages: 48
D

Debutan

Guest
Pour le premier bouton, l'éditeur de macro "nouvelle macro" me donne un code comme ca quand je réalise tout ca à la main

Private Sub buttonCopyFeuil1_Click()

' buttonCopyFeuil1_Click Macro
' Macro enregistrée le 13/02/2004 par MYCOMPUTOR
'
'
Columns("A:B").Select 'peut on mettre les intitulés de colonnes a la place des lettres A,B

Selection.Copy
Sheets("Feuil2").Select
Columns("A:B").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
Columns("G:G").Select 'G:G est-ce nécessaire?? intitulé de la colonne?
Selection.Copy
Sheets("Feuil2").Select
Columns("C:C").Select
ActiveSheet.Paste

End Sub


Quelqu un peut il m aider a corriger ca
 
M

Michel_M

Guest
Bonjour

Ci dessous un code pour feuille1 vers feuille2

Pour les autres, adaptes le code

Sub copier()

Dim lig As Long

Worksheets("feuil1").Activate
lig = Range("A1").End(xlDown).Row

Worksheets("feuil2").Activate
Range("A2:C65536").ClearContents

' A et B =noms et prénom
Range("A2:B" & lig) = Sheets(1).Range("A2:B" & lig).Value
' G= e-mail
Range("C2.C" & lig) = Sheets(1).Range("G2:G" & lig).Value

End Sub


Bon courage
Michel
 

Discussions similaires

Réponses
22
Affichages
899
Réponses
7
Affichages
424

Statistiques des forums

Discussions
312 545
Messages
2 089 476
Membres
104 177
dernier inscrit
MMAURI