VBA PasteSpecial qui ne fonctionne pas

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

Maxitos

XLDnaute Nouveau
Bonjour tout le monde !

J'ai un problème qui me turlupine, et je pense que vos regards éclairés sauront me dire ce qui ne va pas.

Le code suivant fonctionne :

Code:
dim adresse as string
Workbooks(classeur).Sheets(feuille).Activate

Range("A1").Value = 1000
Range("A1").Copy

adresse = Range("plagenommée").Address

Range(adresse).Parent.Activate
Range(adresse).Activate

ActiveSheet.Paste

Le même mais avec un PasteSpecial ne fonctionne pas (1004 : Erreur definie par l'application ou par l'objet) :

Code:
dim adresse as string
Workbooks(classeur).Sheets(feuille).Activate

Range("A1").Value = 1000
Range("A1").Copy

adresse = Range("plagenommée").Address

Range(adresse).Parent.Activate
Range(adresse).Activate

'erreur ici :
ActiveSheet.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False

Quelqu'un aurait une idée d'où mon problème pourrait venir ?

Merci d'avance 😉

Max
 
Dernière édition:
Re : VBA PasteSpecial qui ne fonctionne pas

bonjour,
je dirai, à priori que tu ne lui donne pas la bonne destination, à savoir, où il doit coller les infos :

essaye avec:
Range(adresse).PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
SkipBlanks:=False, Transpose:=False

à +
 
Re : VBA PasteSpecial qui ne fonctionne pas

je pense que tu as un truc qui cloche avec "range(adresse)", l'enregistreur de macro donne une réponse approchante
tu es sur que range(adresse) correspond bien à une zone sélectionnable ?
à +
 
Re : VBA PasteSpecial qui ne fonctionne pas

J'avais trouvé aussi , mais trop lent ... enfin je confirme que : Range(adresse).PasteSpecial
est correct , j'ai testé , j'obtiens une plage avec des 0 ( multiply) qui corespond bien si on fait à la main
 
Re : VBA PasteSpecial qui ne fonctionne pas

Bonjour Maxitos, Francedemo

Essaye peut-être un code de ce type:

Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
Re : VBA PasteSpecial qui ne fonctionne pas

Bonjour à tous,

dans la ligne

adresse = Range("plagenommée").Address

ça ne serait pas plutôt

adresse = Range("plagenommée").Value

?

(suite à ton dernier fil)

Edit : Bonjour hervé, Bonjour Michel

comme ça ça a l'air de passer

Code:
Dim adresse As String
classeur = "Classeur2.xlsx"
feuille = "Feuil1"
Workbooks(classeur).Sheets(feuille).Activate

Range("A1").Value = 1000
Range("A1").Copy

adresse = Range("plagenommée").Value

Range(adresse).Parent.Activate
Range(adresse).Activate

'erreur ici :
ActiveCell.PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply, _
        SkipBlanks:=False, Transpose:=False
 
Dernière édition:
Re : VBA PasteSpecial qui ne fonctionne pas

Bonjour,

Il faut que tu remplaces activesheet.pastespecial par selection.pastespecial. mais dans ce cas là il faut que tu sélectionne qu préalable une cellule de destination avec un range("..").select ou activecell.offset(..,..).select,....

Ayaflo
 
Re : VBA PasteSpecial qui ne fonctionne pas

Bonjour MJ13,

Ton code fonctionne, mais tu m'accordera qu'on perd l'utilité première de mon PasteSpecial qui est de multiplier par un nombre. 😉

Mais au moins ça montre que la syntaxe PasteSpecial est la bonne, ce qui pose problème semble être a priori le Operation:=xlMultiply

Lorsque je met Operation:=xlMultiply , il s'arrête avant de coller sans afficher d'erreur maintenant. Si je termine à la main ça marche
 
Re : VBA PasteSpecial qui ne fonctionne pas

Afin d'éviter tout problème sur les adresses, j'ai repris a la main les références de plage :

Ce code me fait donc un copier coller classique et fonctionnel :
Code:
Workbooks(classeur).Sheets(feuille).Activate

Range("A1").Value = 1000
Range("A1").Copy
Sheets("h24").Activate
Range("Q3:Q543").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Tandisque celui la ne fait rien (enfin selectionne bien A1, la copie, selectionne la range, mais ne colle pas avec multiply comme prévu)
Code:
Workbooks(classeur).Sheets(feuille).Activate

Range("A1").Value = 1000
Range("A1").Copy
Sheets("h24").Activate
Range("Q3:Q543").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply, SkipBlanks _
        :=False, Transpose:=False

J'espère que j'ai été clair,

Merci à tous 😉
 
- 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

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
947
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
961
Réponses
12
Affichages
1 K
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
551
Retour