copie de plages de cellules

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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é".
 
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
 
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 @+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
455
Réponses
18
Affichages
134
Réponses
1
Affichages
465
Réponses
5
Affichages
466
Réponses
5
Affichages
379
Retour