Run Time Error 1004 : Échec de la méthode PasteSpecial de la classe Range

  • Partage Ça
Hugh West

L'un des problèmes les plus courants que nous rencontrons en travaillant avec les copier et coller en VBA est le erreur d'exécution 1004 : Échec de la méthode PasteSpecial de la classe Range Dans cet article, je vais vous montrer quelles sont les raisons possibles de cette erreur et comment les résoudre, avec des exemples et des illustrations appropriés.

Télécharger le cahier d'exercices

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

La méthode PasteSpecial a échoué.xlsm

Échec de la méthode PasteSpecial de la classe Range : Causes et solutions

Sans plus attendre, passons à notre sujet principal, à savoir les raisons possibles de cette erreur et la façon de les résoudre.

Raison 1 : accéder à la méthode PasteSpecial sans rien copier

C'est la raison la plus fréquente de l'erreur, c'est-à-dire que l'on essaie d'accéder à la base de données de l'entreprise. PasteSpecial sans copier quoi que ce soit.

Pour bien le comprendre, vérifiez les points suivants VBA code.

⧭ Code VBA :

 Sub PasteSpecial_Method_of_Range_Class_Failed() Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Ici, nous avons utilisé le PasteSpecial méthode de VBA sans copier quoi que ce soit. Ainsi, Excel affichera une fenêtre erreur d'exécution 1004 lorsque vous l'exécutez.

⧭ Solution :

Pour résoudre ce problème, vous devez tout d'abord copier une plage de cellules puis accéder à la fonction PasteSpecial méthode.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End Sub 

Lorsque vous exécutez ce code, il collera les formules de la plage B3:B5 de la feuille de calcul active à la plage sélectionnée.

Lire la suite : Échec de la méthode PasteSpecial de la classe de la feuille de travail (Raisons et ; Solutions)

Raison 2 : Accès à la méthode PasteSpecial avec une erreur d'orthographe

Il s'agit d'une autre raison fréquente de l'erreur, c'est-à-dire que pour accéder à la base de données des PasteSpecial avec une ou plusieurs fautes d'orthographe dans l'un des arguments.

Regardez ce qui suit VBA Ici, nous avons fait une erreur d'orthographe dans l'argument. xlPasteAll .

⧭ Code VBA :

 Sub PasteSpecial_Method_of_Range_Class_Failed() Application.Range("B3:B5").Copy Selection.PasteSpecial Paste:=xlPaseAll End Sub 

Lorsque vous exécutez ce code, vous obtiendrez le message suivant erreur d'exécution 1004 .

⧭ Solution :

La solution est facile. Je suis sûr que vous l'avez déjà deviné. Il suffit de s'assurer que l'orthographe de tous les arguments a été faite correctement.

Et l'erreur disparaîtra automatiquement.

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

Lectures similaires

  • Excel VBA : Copier une plage dans un autre classeur
  • Copier et coller les valeurs dans la ligne vide suivante avec Excel VBA (3 exemples)
  • Appliquer VBA PasteSpecial et conserver le formatage de la source dans Excel
  • Comment copier la même valeur dans plusieurs cellules d'Excel (4 méthodes)
  • Excel VBA pour copier des lignes vers une autre feuille de calcul sur la base de critères

Raison 3 : L'ouverture d'un nouveau classeur après la copie annule le mode copier/coller.

C'est une autre raison importante qui explique l'erreur, à savoir faire quelque chose qui annule le mode copier/coller avant de coller.

Regardez le code suivant pour bien comprendre.

⧭ Code VBA :

 Sub PasteSpecial_Method_of_Range_Class_Failed() Workbooks("Workbook1.xlsx").Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & ; "\" & ; "Workbook2.xlsx" Workbook2.Activate Workbook2.Unprotect Workbook2.Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAllEnd Sub 

Ici, nous avons copié la gamme B3:B5 de la Feuille 1 d'un classeur appelé Cahier d'exercices 1 .

Puis nous avons créé un nouveau classeur appelé Cahier d'exercices2 dans le même dossier et j'ai essayé de coller la plage copiée dans la plage B3:B5 de Feuille 1 de ce classeur.

Mais lorsque nous exécutons le code, il affichera un Échec de la méthode PasteSpecial de la classe Range Erreur, parce qu'au moment où nous créons le nouveau classeur, les mode copier/coller sera annulée.

⧭ Solution :

Pour résoudre ce problème, écrivez d'abord les lignes de code pour créer le nouveau classeur appelé Cahier d'exercices2 .

Ensuite, insérez les lignes pour activer Cahier d'exercices 1 et copier la gamme désirée à partir de celui-ci.

Et enfin, activez Cahier d'exercices2 et collez-y la plage copiée.

 Sub PasteSpecial_Method_of_Range_Class_Failed() Dim Workbook2 As Workbook Set Workbook2 = Workbooks.Add Workbook2.SaveAs Filename:=ThisWorkbook.Path & ; "\" & ; "Workbook2.xlsx" Workbooks("Workbook1.xlsx").Activate Worksheets("Sheet1").Range("B3:B5").Select Selection.Copy Workbook2.Activate Worksheets("Sheet1").Range("B3:B5").Select Selection.PasteSpecial Paste:=xlPasteAll End Sub 

Exécutez ce code. Il va copier la plage B3:B5 de Feuille 1 de Cahier d'exercices 1.

Et le coller dans Feuille 1 du classeur nouvellement créé appelé Cahier d'exercices2 .

⧭ Précaution :

Évidemment, n'oubliez pas de garder Cahier d'exercices 1 ouvert pendant l'exécution du code.

Lire la suite : Comment désactiver le copier-coller dans Excel sans macros (avec 2 critères)

Raison 4 : le passage de Application.CutCopyMode à False qui annule le mode copier/coller

Enfin, il peut y avoir une autre raison pour que l'erreur se produise. Nous pouvons désactiver la fonction Application.CutCopyMode par erreur avant d'accéder à la PasteSpecial méthode.

Bien qu'il ne s'agisse pas d'une pratique très courante, il nous arrive de le faire lorsque nous devons travailler avec un grand nombre de lignes.

Voir le code suivant pour le comprendre clairement. Ici, nous avons copié la plage B3:B5 mais a annulé le CutCopyMode avant de le coller.

⧭ Code VBA :

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Application.CutCopyMode = False Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Lorsque vous exécuterez le code, il affichera l'écran suivant Échec de la méthode PasteSpecial de la classe Range erreur.

⧭ Solution :

Je suppose que vous avez tous deviné la solution. C'est assez simple en fait. Il suffit de supprimer la ligne du code qui transforme la fonction CutCopy mode désactivé.

Donc, la bonne VBA Le code sera :

 Sub PasteSpecial_Method_of_Range_Class_Failed() Range("B3:B5").Copy Range("D3:D5").PasteSpecial Paste:=xlPasteAll End Sub 

Il copiera la gamme B3:B5 et le coller sur le D3:D5 sans aucun problème.

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

Les choses à retenir

Ici, je n'ai montré que les problèmes que vous pouvez rencontrer lorsque vous travaillez avec l'application PasteSpecial méthode dans VBA. Si vous voulez connaître le PasteSpecial en détail, visitez ce lien .

Conclusion

Donc, en bref, ce sont les raisons qui peuvent causer la Erreur d'exécution 1004 : La méthode PasteSpecial de la classe Range a échoué. dans votre code. J'espère que vous avez compris tous les points clairement et que ceux-ci vous aideront beaucoup à l'avenir. Connaissez-vous d'autres raisons ? Et avez-vous des problèmes ? N'hésitez pas à nous demander. Et n'oubliez pas de visiter notre site ExcelWIKI pour d'autres messages et mises à jour.

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.