Problème avec "ActiveSheet.paste"

  • Initiateur de la discussion Initiateur de la discussion Astyanax
  • 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 !

Astyanax

XLDnaute Occasionnel
Bonjour à tout le forum, lors de l'exécution d'une macro, le message d'erreur suivant m'est
retourné :
'Erreur d'exécution 1004
La méthode Paste de la classe Worksheet a échoué'
Je suis avec office 2003 et je pense qu'avec le 2000, je n'avais pas ce problème ou pour être plus complet, je ne sais pas si j'ai modifié quelque chose dans ma macro depuis mon passage à 2003 qui fait que maintenant cela se plante.

Cette partie de macro est très simple et doit me copier une partie d'une feuille dans une autre feuille du même classeur.

Sheets('xx').Select
Range('A1').Select
Selection.CurrentRegion.Copy
Sheets('yy').Select
Range('A1').Select
ActiveSheet.Paste

Je vous remercie de me donner votre avis et de m'indiquer si possible les raisons de cette erreur.
Je vous souhaite une bonne soirée
Astyanax
 
Salut astyanax
J'ai crée cette macro avec l'enregistreur et elle fonctionne parfaitement, vois si avec ton excel 2003, elle fonctionne toujours



Sub Macro1()
With Sheets('xx').Select
Range('A1:A2').Select
Selection.Copy
Sheets('yy').Select
Range('A1').Select
ActiveSheet.Paste
End With
End Sub
@micalement
 
Bonsoir Astyanax, Gex1403, Barbara, le Forum

Je viens de tester ceci sous Office XP (2002) :

Sub Test()

Sheets('xx').Select
Range('A1').Select
Selection.CurrentRegion.Copy
Sheets('yy').Select
Range('A1').Select
ActiveSheet.Paste

End Sub

Pas de souci, au pire une erreur '9' si les onglets 'yy' ou 'xx' n'existent pas...

Pour arriver à avoir une erreur '1004' il faut que je protège la feuille 'yy'...

Sinon, exactement le même style de code que proposé par Barbara, mais avec l'utilisation d'Objects Range :

Option Explicit

Sub CopyRange()
Dim PlageSource As Range
Dim CellDestination As Range

With ThisWorkbook
   
Set PlageSource = .Sheets('xx').Range('A1').CurrentRegion
   
Set CellDestination = .Sheets('yy').Range('A1')
End With

PlageSource.Copy CellDestination


End Sub


Bonne Soirée
[ol]@+Thierry[/ol]
 
Re-bonsoir Barbara,Gérard,Thierry et tout le forum,
Gérard, j'ai essayé ta solution mais cela ne me copie pas toute ma sélection. J'avais également fait l'essai avec l'enregistreur et il me donne la même solution.
Ce que je comprend pas c'est pourquoi en copiant la majorité de ce que me propose l'enregistreur, j'obtiens cette erreur.
Barbara, je pense que j'ai dû faire une erreur car avec ta proposition, j'obtiens également une erreur 1004 et disant que la méthode Copy de la classe Range a échoué.
Thierry, je suis désolé mais je n'ai pas eu le temps d'essayer ta solution mais tu me dis quelle se rapproche de celle de Barbara.
Mes feuilles ne sont pas protégées et ce que ne comprends pas c'est que cette macro fonctionnait.
Je vous souhaite à tous une excellente soirée
Astyanax
 
Salut Astyanax
bonsoir le Fil
bonsoir le forum
bon Alors moi je suis venu proposé une procèdure à la @+Thierry Lol (arff c'est mon excuse pour venir te Saluer Thierry Lol(j'espère que tu vas bien)
Code:
Sub CopyRange()
With ThisWorkbook.Sheets('Feuil3').Range('A1').CurrentRegion
      ThisWorkbook.Sheets('Feuil5').Range('A1').Resize(.Rows.Count, .Columns.Count) = .Value
End With

End Sub
bonne fin de Soirée Lol
 
Bonsoir Jean-Marie et merci pour ta réponse et ta proposition mais j'aime bien comprendre et mon élément de macro en erreur (copie d'une partie de feuille) me semble simple et a déjà fonctionné. C'est pour cela que j'aimerais comprendre ce qui ne lui plait plus.
J'ai pensé au passage à Office 2003 et je vois que sur internet plusieurs personnes ont eu des problèmes avec le presse-papiers en utilisant ce code mais ... ?
Je prends bonne note de vos solutions car si je n'aboutis pas j'utiliserai une des celles que vous m'avez proposé.
Je vous remercie tous encore une fois pour vos réponses.
Bonne soirée
Astyanax
 
Bonsoir Astyanax, mon ami Jean-Marie, Barbara, Gex1403, le Forum

Bon et bien moi aussi maintenant de chez moi je suis Office 2003 (Pro).

Je viens de tester : aucun souci

Voici mon fichier de tests...

Je ne pense pas du tout que le problème puisse survenir à cause de ce code et de la version d'Excel, il y a un autre problème.

Teste un peu et tiens nous au courant...

Bonne nuit
[ol]@+Thierry[/ol] [file name=Excel_2003.zip size=16886]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Excel_2003.zip[/file]
 

Pièces jointes

Bonsoir à tout le monde et bien Thierry pour tes différents essais et Leon le nettoyeur.
Effectivement, mon problème est peut être + complexe ??
Ce n'est qu'un tout petit bout de ma macro mais c'est lorsque je fais la copie par 'ActiveSheet.paste' que cela bloque.
La copie est bien faite sur la feuille destinatrice mais le debogueur indique cette ligne en défaut.
Autre souci, mon anti-virus a toujours trouvé cette macro douteuse. A chaque contrôle, il la mettait en quarantaine.
Je pense que je dois cumuler plusieurs problèmes.
Bonne nuit à tous, la soirée est bien entamée
Astyanax
 
- 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

Discussions similaires

Réponses
10
Affichages
792
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
Retour