Comment appliquer VBA PasteSpecial et conserver le formatage de la source dans Excel

  • Partage Ça
Hugh West

Cependant, il y a des situations où nous voulons dupliquer plus que du simple texte. Nous pouvons copier toutes les capacités d'Excel, telles que le formatage conditionnel, la validation des données, le formatage des types de données et les caractéristiques esthétiques comme les bordures et les couleurs des cellules. Peut-être admirez-vous le schéma de couleurs de votre collègue, mais vous avez besoin de données statiques, ou peut-être les formules sont-elles fantastiques, mais vous n'aimez pas le schéma de couleurs.Dans ce tutoriel, nous allons montrer le VBA PasteSpecial et conserver le formatage de la source dans Excel.

Télécharger le cahier d'exercices

Téléchargez ce cahier d'exercices pour vous entraîner pendant que vous lisez cet article.

VBA CollerSpécial.xlsm

4 exemples faciles pour appliquer VBA PasteSpecial et conserver le formatage de la source dans Excel

Nous allons vous montrer quatre exemples d'utilisation du collage spécial dans VBA tout en conservant le format source dans les sections ci-dessous. Voici un exemple d'ensemble de données que nous utiliserons pour copier et coller.

Ajouter un champ de saisie en utilisant VBA PasteSpecial et en conservant le formatage de la source dans Excel.

Tout d'abord, nous allons utiliser la boîte pour sélectionner une plage et la coller dans une autre cellule. Pour ce faire, suivez les étapes ci-dessous.

Étape 1 :

  • Tout d'abord, appuyez sur Alt + F11 pour lancer un Macro .
  • Ensuite, cliquez sur le Insérer, choisir le Module option.

Étape 2 :

  • Collez le code VBA suivant.
 Sub PasteSpecialKeepFormat() 'declare CopyCell and PasteCell as range variable Dim CopyCell As Range, PasteCell As Range 'donne un nom à la boîte de saisie xTitleId = "ExcelWIKI" 'set copy range will be selected from the worksheet Set CopyCell = Application.Selection 'set a Input Box to take a range to copy from Set CopyCell = Application.InputBox("Select Range to Copy :", xTitleId, CopyCell.Address,Type:=8) 'Définir une boîte de saisie pour prendre une plage à coller Set PasteCell = Application.InputBox("Coller dans n'importe quelle cellule vide :", xTitleId, Type:=8) 'Commande pour copier la plage sélectionnée CopyCell.Copy 'Commande pour coller la plage PasteCell.Parent.Activate 'Commande aux cellules collées pour conserver le formatage source PasteCell.PasteSpecial xlPasteValuesAndNumberFormats PasteCell.PasteSpecial xlPasteFormatsApplication.CutCopyMode = False End Sub 

Étape 3 :

  • Sauvez le programme et appuyez sur F5 pour l'exécuter.
  • Après l'apparition de la ExcelWIKI sélectionnez l'intervalle $B$4:$C$11 .
  • Cliquez sur OK .

Étape 4 :

  • Sélectionnez une cellule vide pour la coller.
  • Ensuite, cliquez sur OK.

  • Par conséquent, vous obtiendrez la valeur de la pâte en gardant le format intact.

Lire la suite : Différence entre Collage et Collage spécial dans Excel

Appliquer VBA PasteSpecial pour sélectionner une plage et conserver le formatage de la source dans Excel

Sur VBA Vous pouvez également spécifier des plages et les copier-coller tout en conservant le formatage de la source. Pour ce faire, suivez les étapes décrites ci-dessous.

Étape 1 :

  • Appuyez sur Alt + F11 pour ouvrir Macro .
  • Créez un nouveau module à partir du Insérer
  • Il suffit de coller ce qui suit VBA code pour la gamme B4:C11 .
 Sub pasteSpecial_KeepFormat() 'Sélectionnez la plage à copier Range("B4:C11").Copy 'Sélectionnez la cellule à coller 'Commande de pasteSpecial conservant le format Range("E4").PasteSpecial xlPasteAllUsingSourceTheme End Sub 

Étape 2 :

  • Enfin, sauvegardez le programme et appuyez sur F5 En conséquence, vous verrez les changements comme indiqué dans l'image ci-dessous.

Lire la suite : VBA Paste Special pour copier des valeurs et des formats dans Excel (9 exemples)

Lectures similaires

  • Code VBA pour comparer deux feuilles Excel et copier les différences
  • Excel VBA : copier la valeur d'une cellule et la coller dans une autre cellule
  • Comment copier plusieurs cellules dans une autre feuille dans Excel (9 méthodes)
  • Excel VBA : Copier une plage dans un autre classeur
  • [Corrigé] : Le clic droit pour copier et coller ne fonctionne pas dans Excel (11 solutions)

3. déclarer une variable en appliquant le VBA PasteSpecial et en conservant le formatage de la source dans Excel.

En déclarant des variables et en définissant des variables dans différentes plages, suivez les étapes ci-dessous pour collerSpecial dans VBA .

Étape 1 :

  • Tout d'abord, appuyez sur Alt + F11 pour ouvrir Macro VBA .
  • Sélectionnez un nouveau Module .
  • Ensuite, collez ce qui suit Code VBA .
 Sub Copy_Paste_Special() 'Déclarer des variables Dim copy_Rng As Range, Paste_Range As Range 'Commande pour copier la plage Set copy_Rng = Range("B4:C11") 'Commande pour coller la plage Set Paste_Range = Range("E4") copy_Rng.Copy 'Coller la commande dans pasteSpecial en gardant le format Paste_Range.PasteSpecial Paste:=xlPasteAllUsingSourceTheme End Sub 

Étape 2 :

  • Après avoir enregistré le programme, appuyez sur F5 pour courir.
  • Par conséquent, votre plage copiée sera collée en conservant le formatage de la source comme auparavant.

Lire la suite : Comment utiliser VBA PasteSpecial pour les formules et les formats dans Excel (3 façons)

4. utiliser VBA PasteSpecial et conserver le formatage de la source dans une feuille de calcul différente dans Excel.

Nous allons parler d'une méthode très importante dans cette partie, puisque nous allons voir comment utiliser PasteSpecial dans VBA dans plusieurs classeurs. Par exemple, nous allons copier de Feuille 4 et le coller dans Feuille 5 comme indiqué dans les étapes ci-dessous.

Étape 1 :

  • Pour ouvrir Macro VBA , appuyez sur Alt + F11
  • De la Insérer choisissez l'onglet Module.
  • Ensuite, collez ce qui suit VBA.
 Private Sub KeepSourceFormat() Application.ScreenUpdating = False 'Declare variables Dim copyRng As Worksheet Dim pasteRng As Worksheet 'Set range destination to the variable Set copyRng = Worksheets("Sheet4") Set pasteRng = Worksheets("Sheet5") 'set the destination of the pasted cells 'For cell E4, Rows.count = 5, Offset = 3 Set Destination = pasteRng.Cells(Rows.Count, 5).End(xlUp).Offset(3, 0)Commande pour copier la plage copyRng.Range("B4:C11").Copy Commande pour coller la plage Destination.PasteSpecial Paste:=xlPasteValues Destination.PasteSpecial Paste:=xlPasteFormats Application.CutCopyMode = False Application.ScreenUpdating = True End Sub 

Étape 2 :

  • Pour exécuter le programme, appuyez sur F5 après avoir sauvegardé le programme.
  • Par conséquent, vous obtiendrez la valeur collée en feuille 5 en conservant le format de la source.

Lire la suite : Comment utiliser la commande Collage spécial dans Excel (5 façons appropriées)

Conclusion

Pour résumer, j'espère que vous savez maintenant comment utiliser Excel VBA à Collage spécial Garder le formatage de la source. Toutes ces stratégies doivent être enseignées à vos données et utilisées pour elles. Examinez le livre de pratique et appliquez ce que vous avez appris. Nous sommes motivés pour continuer à donner des conférences comme celles-ci grâce à votre important soutien.

N'hésitez pas à nous contacter si vous avez des questions et à partager vos réflexions dans la boîte de commentaires ci-dessous.

Vos questions seront répondues dans les plus brefs délais par le Exceldemy personnel.

Restez avec nous et continuez à apprendre.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.