copie de plages de cellules

  • Initiateur de la discussion violaine
  • Date de début
V

violaine

Guest
Bonsoir à tous,

j'ai fait une petite macro (avec l'enregistreur de macro) qui marche très bien quand j'utilise la fonction outils / macro / macros de lecture des macros.
elle me copie des données sur une feuille et me les collent sur une autre :

Sub récup_clients()

Sheets("feuil1").Select
Range("C2:C84").Select
Selection.Copy
Sheets("feuil5").Select
Range("B4").Select
ActiveSheet.Paste
End Sub

Par contre j'ai voulu l'associer à un bouton de commande et là, ça ne marche pas... ça me donne une erreur d'exécution 1004 et me met "la méthode select de la classe range a échoué".
 
V

Vériland

Guest
Bonsoir Violaine,

Tu travailles avec l'enregistreur de macro ?...c'est une très bonne chose pour apprendre...par contre l'enregistreur a tendance à tout inscrire par incrémentation...donc faut ranger un peu...loool

Donc si tu associes la macro à un bouton il faut un Private sub sur la feuille (VBA) qui appelle la macro recup_clients

...le bouton sera défini comme çà...

Private Sub CommandButton1_Click()
recup_clients
End Sub


...et ta macro pouvant être ainsi...

Sub recup_clients()
Sheets("feuil1").Range("C2:C84").Copy
ActiveSheet.Paste Worksheets("Feuil5").Range("B4")
End Sub


Voilà pour l'instant...

Bonne programmation

A+Veriland.gif
 
S

schmail

Guest
Bonsoir Violaine et le Forum

Je pense que si tu colles ton bouton sur la feuille5 pas de pb si ce n'est que tu peux simplifier ta macro :

Sub récup_clients()

Sheets("feuil1").Range("C2:C84").Copy
Sheets("feuil5").Range("B4").Select
ActiveSheet.Paste

End Sub

Par contre si tu colles ton bouton sur la feuille1, activesheet ne doit pas être valable et il doit falloir faire une macro du style :

Sub récup_clients2()

Sheets("feuil1").Range("C2:C84").Copy
Sheets("feuil5").Select
Range("B4").PasteSpecial

End Sub

Bonne soirée et @+
 
V

Vériland

Guest
juste pour terminer le plus simple est de mettre l'ensemble de la procédure dans le bouton :

Private Sub CommandButton1_Click()
Sheets("feuil1").Range("C2:C84").Copy
ActiveSheet.Paste Sheets("Feuil5").Range("B4")
End Sub


Avant c'était l'exemple où recup_clients était placé dans un module...

Bon ben Bonne nuit Schmail Violaine et le Forum
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 095
Messages
2 105 816
Membres
109 434
dernier inscrit
RAOUL34