Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

 
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…