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
 
Bonjour.
Peut être n'y a-t-il rien de copié ? Cela peut être vérifié en testant Application.CutCopyMode
Personnellement je préfère RgnCbl.Value = RngSrc.Value plutôt que RngSrc.Copy: RngCbl.PasteSpecial xlPasteValues
 
Bonjour,
Si, la copie est bien faite.
Personnellement je préfère RgnCbl.Value = RngSrc.Value plutôt que RngSrc.Copy: RngCbl.PasteSpecial xlPasteValues
Je ne comprends pas tout à fait: je n'utilise pas RngSrc.Copy: RngCbl.PasteSpecial xlPasteValues!
Comment est-ce que j'intègre ce code dans le mien dont l'enregistreur macro est à l'origine?
 
Re,

Voici une partie de mon code:

VB:
Do While fnames <> ""
    Set wbQuelle = Workbooks.Open(fnames)
  
    For n = 1 To wbQuelle.Sheets.Count
        wbQuelle.Sheets(n).Activate
  

'Copier et trier saisies

wbQuelle.Sheets(n).Activate
  
    
  Range("A5:A65").Select
  Selection.Copy
  wbZiel.Sheets("Saisies").Activate
      
' Vider les cellules vides considérées comme non vides
Dim zelle As Range
For Each zelle In ActiveSheet.UsedRange.Cells
      If Not zelle.HasFormula Then
           If Not IsEmpty(zelle) And zelle.Value = "" Then
           zelle.ClearContents
           End If
      End If
Next
  
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

    'Range("A" & lastRow + 1).Select
    Range("A" & lastRow + 1 & ":A" & lastRow + 62).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
C'est donc tout en bas du code que cela cloche.
J'avais encore essayé de sélectionner toutes les cellules de destination pour la copie, sans effet.
 
En allemand il y a une expression dont je ne connais pas d'équivalent aussi poignant et bref en français: "gewusst wie", ce qui signifie qu'on est d'accord avec son interlocuteur, mais qu'on ne sait pas comment s'y prendre.

Je ne suis pas bien fort en VBA: la preuve: j'utilise l'enregistreur.

Ce que je ne comprends pas: pourquoi le code fonctionne-t-il avec F8 mais pas en exécution normale?
 
Lorsque je mets le code qui vide les cellules apparemment vides en remarque alors il tourne!
Vous avez donc raison!

Seulement, si je le mets plus tard, lastrow ne renverra pas la bonne valeur!
 
Voici 2 fichiers, le fichier source (Septembre...) et le fichier destination (Base).
Le fichier source doit se trouver dans un dossier nommé "ToBeCopied"
Le code se trouve dans le module 2.
Vous y trouverez des éléments qui n'ont rien à voir avec cette tâche-ci; ignorez-les.

Il n'est pas encore complet:
il faut encore, après le triage, copier le nom en U1 dans le fichier source et le nom du service en AW1 et les coller dans le fichier destination en C et en D.
 

Pièces jointes

- 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…