Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA: PasteSpecial refuse de fonctionner

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

Aloha

XLDnaute Accro
Bonjour,

Quelle peut être la raison que PasteSpecial ne fonctionne pas lorsque je démarre la macro normalement, alors que cela fonctionne lorsque je fais tourner la macro par F8?

Range("A" & lastRow + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Message d'erreur:
Erreur d'exécution 1004:
La méthode PasteSpecial de la classe Range a échoué.

Bonne journée
Aloha
 
Ok je vois
un instant
Après la fin de la boucle il faut insérer le nom & nom service, ce n'est pas encore fait, mais indispensable avant de copier la prochaine fiche.
 

Pièces jointes

Dernière édition:
J'ai placé la routine qui doit vider les cellules vides à l'oeil mais pas vides pour Excel à un autre endroit mais elle ne fonctionne pas: elle ne vide pas les lignes apparemment vides après le triage.
Comment faire?
 

Pièces jointes

Enlevez moi ces Sheets(n).Activate et ces Select.
Déclarez une variable WshSrc As Worksheet
et faites For Each WshSrc In wbQuelle.Worksheets
et juste avant le collage spécial faites le WshSrc.Range("F5:AC66").Copy
Pour la feuille cible, si ç'en est une du classeur qui porte la macro, vous pouvez utiliser comme expression Worksheet le nom de l'objet worksheet qui représente la feuille. Dans votre classeur joint l'objet Worksheet qui représente la feuille "Saisie" s'appelle Feuil13. Vous pouvez donc faire Feuil13.Range("E" & lastRow + 1).PasteSpecial Paste:=xlPasteValues etc.
Mais moi je préfèrerais
VB:
Feuil13.Range("E" & lastRow + 1).Resize(60, 25).Value = WshSrc.Range("F5:AC66").Value
Je n'utilise jamais la méthode Range de l'objet Application, je ne l'aime pas. Toujours seulement celle de l'objet Worksheet. Comme ça il n'est pas nécessaire que la feuille soit active.
 
Dernière édition:
- 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
547
Réponses
18
Affichages
314
Réponses
2
Affichages
281
Réponses
17
Affichages
1 K
  • Question Question
Microsoft 365 Erreur de format
Réponses
5
Affichages
491
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…