Note: The other languages of the website are Google-translated. Back to English

Comment créer un bouton de commande pour copier et coller des données dans Excel?

Supposons que vous deviez copier fréquemment une plage de cellules à un autre endroit après avoir modifié les données, la méthode de copier-coller manuellement sera difficile et prend du temps. Comment faire en sorte que cette affaire de copier-coller s'exécute automatiquement? Cet article vous montrera comment utiliser un bouton de commande pour copier et coller des données en un seul clic.

Créez un bouton de commande pour copier et coller des données avec du code VBA


Créez un bouton de commande pour copier et coller des données avec du code VBA

Veuillez procéder comme suit pour copier et coller des données automatiquement lorsque vous cliquez sur un bouton de commande.

1. Insérez un bouton de commande en cliquant sur Développeur > insérer > Bouton de commande (contrôle ActiveX). Voir la capture d'écran:

2. Dessinez un bouton de commande dans votre feuille de calcul et cliquez dessus avec le bouton droit. Sélectionner Voir le code dans le menu contextuel.

3. Dans le pop-up Microsoft Visual Basic pour applications fenêtre, veuillez remplacer le code d'origine dans la fenêtre Code par le code VBA ci-dessous.

Code VBA: utilisez le bouton de commande pour copier et coller des données dans Excel

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Dim xSheet As Worksheet
    Set xSheet = ActiveSheet
        If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
            xSheet.Range("A1:C17 ").Copy
            xSheet.Range("J1:L17").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If

    Application.ScreenUpdating = True
End Sub

Notes: Dans le code, CommandButton1 est le nom de votre bouton de commande inséré. A1: C17 est la plage que vous devez copier et J1: L17 est la plage de destination pour coller les données. Veuillez les changer selon vos besoins.

4. presse autre + Q touches pour fermer le Microsoft Visual Basic pour applications la fenêtre. Et désactivez le mode de conception sous l'onglet Développeur.

5. Cliquez maintenant sur le bouton de commande, toutes les données de la plage A1: C17 seront copiées et collées dans la plage J1: L17 sans le formatage de cellule.


Articles connexes:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (60)
Noté 4.5 hors 5 · évaluations 1
Ce commentaire a été minimisé par le modérateur sur le site
J'ai utilisé cette fonction dans mon classeur. J'utilise les boutons x actifs pour copier et coller des données dans la même feuille sur plusieurs feuilles. Cependant, il existe des feuilles sans boutons x actifs ou macros qui obtiennent des données collées à partir des champs respectifs sur la feuille que je ne veux pas. Aider?
Ce commentaire a été minimisé par le modérateur sur le site
Puis-je avoir le code qui copiera la plage I4: L26 de Sheet2 (appelé TransferSheet) (le bouton sera sur cette feuille) à Sheet1 (appelé JobsToDo) sur la ligne C (1ère ligne vide car cela aura des données ajoutées constamment s'il vous plaît
Ce commentaire a été minimisé par le modérateur sur le site
Comment pouvez-vous modifier le code pour coller les résultats sur une autre page du classeur ? et comment obtenez-vous l'insertion d'une ligne avant de mettre les nouvelles données afin qu'elles ne les écrasent pas
Ce commentaire a été minimisé par le modérateur sur le site
Salut Jason,
Si vous souhaitez coller les résultats dans d'autres feuilles de calcul du classeur, essayez le code VBA ci-dessous.

Private Sub CommandButton1_Click ()
Dim xSheet, xDWS en tant que feuille de travail
Dim xFNum en tant qu'entier
Dim xSRg As Range

On Error Resume Next
Set xSRg = Application.InputBox("Veuillez sélectionner une cellule pour coller la plage :", "Kutools for Excel", xTxt, , , , , 8)
Si xSRg n'est rien, quittez Sub

Application.ScreenUpdating = Faux
Plage("A1:C17 ").Copier
xSRg.PasteSpecial Coller :=xlValues, Opération :=xlNone, SkipBlanks :=False, Transpose :=False
Application.ScreenUpdating = True

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
comment est la formule pour nous de copier des fichiers
puis collez-le sur la feuille suivante. et collez le suivant faites un espace ou continuez sans supprimer le collage précédent.
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Le code VBA ci-dessous peut vous aider à résoudre le problème. Veuillez essayer. Merci.

Private Sub CommandButton1_Click ()
Dim xSheet, xDWS en tant que feuille de travail
Dim xFNum en tant qu'entier
Dim xSRg As Range

On Error Resume Next
Set xSRg = Application.InputBox("Veuillez sélectionner une cellule pour coller la plage :", "Kutools for Excel", xTxt, , , , , 8)
Si xSRg n'est rien, quittez Sub

Application.ScreenUpdating = Faux
Plage("A1:C17 ").Copier
xSRg.PasteSpecial Coller :=xlValues, Opération :=xlNone, SkipBlanks :=False, Transpose :=False
Application.ScreenUpdating = True

End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Que se passe-t-il si je souhaite créer une file d'attente de collage ?
Pour expliquer plus loin. Je clique sur CommandButton1 puis copie A1. Lorsque j'ai utilisé coller, la copie de A1 - Ensuite, je veux copier A2 sans cliquer sur un autre bouton, afin de pouvoir coller A2 tout de suite, ailleurs. Ensuite, lorsque j'ai utilisé la pâte, copiez depuis A2 puis copiez A3. Si c'est possible ? Cela peut-il également fonctionner en arrière-plan lorsque vous utilisez une feuille Excel normale, et essayez de faire cette action où je copie à partir d'Excel, puis collez dans un programme complètement différent comme un navigateur Internet, un autre programme, un mot, un fichier txt, etc. ?

Cet article m'a été en tout cas extrêmement utile, merci beaucoup !
Ce commentaire a été minimisé par le modérateur sur le site
Salut Magnus,
Désolé, je ne peux pas vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Je voudrais développer cette étape ... Après avoir collé les valeurs réelles et non les formules ... Je dois copier la nouvelle cellule et la coller dans un autre programme qui n'est pas Excel, devrais-je simplement cliquer sur le bouton copier la formule à partir d'un cellule spécifique et collez la valeur réelle dans une autre, puis copiez cette nouvelle valeur dans le presse-papiers Windows pour la coller dans une autre application. J'espère que cela a du sens et j'apprécie votre aide pour savoir comment ajouter le nouveau code... Je sais ce que je veux qu'il fasse, mais je ne sais pas comment le coder...
Merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Le code a été mis à jour dans l'article, veuillez essayer. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
Serait-il possible que le bouton de commande colle instantanément la plage sélectionnée dans une feuille spécifiée (dans la prochaine cellule vide) plutôt que d'avoir à saisir à chaque fois où vous voulez coller les données?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Adam,
Le code VBA ci-dessous peut vous aider à résoudre le problème.
Vous devez remplacer "Sheet4" et "A1:C17" dans le code par la feuille et la plage spécifiées.

Private Sub CommandButton1_Click ()
Estomper xSWName en tant que chaîne
Dim xSheet en tant que feuille de calcul
Estomper xPSheet en tant que feuille de calcul
Dim xIntR As Integer
xSWName = "Feuille4"
On Error Resume Next
Application.ScreenUpdating = Faux
Définir xFeuille = FeuilleActive
Si xSheet.Name <> "Définitions" Et xSheet.Name <> "fx" Et xSheet.Name <> "Besoins" Alors
xSheet.Range("A1:C17 ").Copy
Définir xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Si fin
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
très bien, j'ai besoin de copier et coller plusieurs fois est-il possible de faire le choix de coller une ligne de données sur 3 lignes ou 5 lignes comme je veux ?
Ce commentaire a été minimisé par le modérateur sur le site
Désolé je ne peux pas t'aider avec ça
Ce commentaire a été minimisé par le modérateur sur le site
comment copier la plage de la cellule dans la feuille de calcul en cours, puis la coller dans une autre feuille de calcul ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Le code VBA ci-dessous peut vous aider à résoudre le problème.
Vous devez remplacer "Sheet4" et "A1:C17" dans le code par la feuille et la plage spécifiées.

Private Sub CommandButton1_Click ()
Estomper xSWName en tant que chaîne
Dim xSheet en tant que feuille de calcul
Estomper xPSheet en tant que feuille de calcul
Dim xIntR As Integer
xSWName = "Feuille4"
On Error Resume Next
Application.ScreenUpdating = Faux
Définir xFeuille = FeuilleActive
Si xSheet.Name <> "Définitions" Et xSheet.Name <> "fx" Et xSheet.Name <> "Besoins" Alors
xSheet.Range("A1:C17 ").Copy
Définir xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Si fin
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Si je veux copier ceci non pas dans le classeur en cours mais dans un autre classeur (qui n'est toujours pas ouvert) dans Excel. Comment modifier ce code VBA en conséquence?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Robbert,
Désolé, je ne peux pas vous aider. Merci d'avoir commenté.
Ce commentaire a été minimisé par le modérateur sur le site
J'ai une qusrion J'ai la feuille 1 avec une colonne de date b3: b33 et je veux que cela soit copié sur la feuille 2 B33: b63 son texte mais j'ai besoin du même format pour le texte, c'est-à-dire la taille de la couleur
Ce commentaire a été minimisé par le modérateur sur le site
Salut auteur,

L'article que vous avez mentionné ci-dessus m'est très utile. Je ne suis pas habitué au code et à la commande Excel. J'ai encore besoin de savoir plutôt que cet article. Je suis d'accord avec le copier-coller dans la feuille suivante. Mais j'ai encore besoin de savoir "comment coller et ajouter dans une nouvelle ligne dans la feuille suivante à chaque fois que j'appuie sur le bouton". Sinon, mes données sur la feuille suivante seront remplacées à chaque fois. Je serais vraiment reconnaissant et impatient de voir votre réponse.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Kyaw Ye Min,
Désolé de répondre si tard. Suivez les étapes et remplacez le code par le code ci-dessous. Dans le code, Sheet4 est la feuille de calcul de destination dans laquelle vous allez copier les données, veuillez la modifier et la plage copiée A1: C17 selon vos besoins. Merci pour votre commentaire.

Private Sub CommandButton1_Click ()
Estomper xSWName en tant que chaîne
Dim xSheet en tant que feuille de calcul
Estomper xPSheet en tant que feuille de calcul
Dim xIntR As Integer
xSWName = "Feuille4"
On Error Resume Next
Application.ScreenUpdating = Faux
Définir xFeuille = FeuilleActive
Si xSheet.Name <> "Définitions" Et xSheet.Name <> "fx" Et xSheet.Name <> "Besoins" Alors
xSheet.Range("A1:C17 ").Copy
Définir xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Si fin
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut, aidez-moi s'il vous plaît. J'ai besoin de la même chose que ci-dessus, mais j'ai juste besoin de coller la cellule active dans une nouvelle ligne (si possible au-dessus des entrées précédentes) dans une feuille de calcul différente. J'apprécie vraiment toute aide à ce sujet. Cordialement
Ce commentaire a été minimisé par le modérateur sur le site
salut, aidez mon cas, je veux avoir un bouton pour générer une macro où j'ai Excel et exporter les données où dans le <" "> au mot, merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,
Désolé je n'ai pas compris votre point. Ce serait bien si vous pouviez expliquer avec plus de détails ce que vous essayez de faire.
Ce commentaire a été minimisé par le modérateur sur le site
Je cherche de l'aide pour qu'un utilisateur puisse cliquer sur un numéro de ligne, puis appuyer sur le bouton de commande pour faire une copie de cette ligne et l'insérer dans la ligne en dessous.
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Désolé, je peux encore vous aider. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
maître bagaimana jika berbeda feuille dan copier les données yg diinginkan
contoh feuille1 hanya données kolom B & kolom D copie ke feuille2
terimakasih
Ce commentaire a été minimisé par le modérateur sur le site
veuillez envoyer le code VBA pour copier le contenu d'une seule cellule à l'aide du bouton de commande, cliquez sans utiliser de zone de texte afin de pouvoir coller dans n'importe quelle application comme le bloc-notes, msword
Ce commentaire a été minimisé par le modérateur sur le site
Est-il possible de créer un bouton qui copie simplement une cellule sélectionnée sur une feuille vers une autre feuille ? Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Salut lexi,
Le code VBA ci-dessous peut vous aider à résoudre le problème. Veuillez remplacer "Sheet3" par le nom de la feuille selon vos besoins.
Sélectionnez une cellule et appuyez sur le bouton de commande pour la faire fonctionner.

Private Sub CommandButton1_Click ()
Estomper xSWName en tant que chaîne
Dim xSheet en tant que feuille de calcul
Estomper xPSheet en tant que feuille de calcul
Dim xIntR As Integer
xSWName = "Feuille3"
On Error Resume Next
Application.ScreenUpdating = Faux
Définir xFeuille = FeuilleActive
Si xSheet.Name <> "Définitions" Et xSheet.Name <> "fx" Et xSheet.Name <> "Besoins" Alors
Sélection.CurrentRegion.Select
Selection.Copy
Définir xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Si fin
Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour!
Existe-t-il un moyen de créer un code pour que je puisse avoir un bouton copier une plage (disons A1: D5).
Et puis collez-le sur A6: D10.

Et si j'appuie une fois de plus sur le bouton, il copiera A1: D5 vers A11: D15.

Etc?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Jonas,
Désolé de ne pas pouvoir t'aider pour ça. Merci pour votre commentaire.
Ce commentaire a été minimisé par le modérateur sur le site
C'est fabuleux - je me suis adapté à ma feuille mais j'en ai besoin pour être plus dynamique et utiliser des étiquettes plutôt que de coder en dur les emplacements des cellules.
C'est-à-dire dans la plage A2-A6, trouvez le nom 'Jamie', puis trouvez le nom dans la colonne K2 et collez

J'ai également besoin de chaque clic pour +1 et exécutez le même copier-coller mais à la colonne suivante, c'est-à-dire

cliquez 1 - collez dans Q1, Cliquez 2 - collez dans Q2 etc.

Mise en situation :

Colonne A Colonne B ...... Colonne K Colonne L
1. Nom Heures travaillées Nom Q1 Q2 Q3 Q4
2. Jamie 22 Samy
3. Sammy 40 Judith
4. Judith 18 Jamie
5. Tammy 16 Keith
6. Keith 42 Tammy


Toute aide serait grandement appréciée.
Ce commentaire a été minimisé par le modérateur sur le site
comment coder pour copier la cellule de la plage a1 à a5 pour la coller dans c1 et dans la prochaine cellule disponible de manière séquentielle ?
Ce commentaire a été minimisé par le modérateur sur le site
et aussi, copier et coller une cellule à la fois.
Merci pour votre aide!
Ce commentaire a été minimisé par le modérateur sur le site
Salut les gars. cela a besoin d'aide, s'il vous plaît. Je dois créer un bouton 10 * dans ma feuille de calcul (Sheet1) qui copiera 3 cellules, Exemple: Sheet1, A1, B1, C1. puis collez-le dans Sheet2 A1, B1, C1. puis si je clique sur le bouton 4, exemple: Sheet1, A4, B4, C4, j'ai besoin que cela passe dans Sheet2, A2, B2, C2. Si je clique sur le bouton 2, il doit passer dans Sheet2, A3, B3, C3. J'espère que cela a du sens.
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL