VBA PasteSpecial qui ne fonctionne pas

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:

francedemo

XLDnaute Occasionnel
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

à +
 

francedemo

XLDnaute Occasionnel
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 ?
à +
 

MJ13

XLDnaute Barbatruc
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
 

tototiti2008

XLDnaute Barbatruc
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:

ayaflo

XLDnaute Junior
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
 

Maxitos

XLDnaute Nouveau
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
 

Maxitos

XLDnaute Nouveau
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 ;)
 

Discussions similaires

Réponses
2
Affichages
117

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr