PasteSpecial [Résolu]

Messages postés
4
Date d'inscription
samedi 2 décembre 2006
Dernière intervention
21 novembre 2007
- - Dernière réponse : aalex_38
Messages postés
4
Date d'inscription
samedi 2 décembre 2006
Dernière intervention
21 novembre 2007
- 16 oct. 2007 à 11:19
Bonjour,

Dans une macro excel, je cherche à faire un collage spécial et j'ai l'erreur suivante  :

Erreur d'exécution '1004'
La méthode PasteSpecial de la classe Range a échoué

Manuellement ça fonctionne :  Je selectionne une ligne  je la copie et menu edition / Collage spécial / Largeurs de colonne

Mon code qui pose problème pour le collage :

Windows("STATBNP").Activate
Rows("1:1").Select
Selection.Insert Shift:=xlDown
Selection.PasteSpecial Paste:=xlColumnWidths

Merci de bien vouloir m'aider, pour ce petit problème qui m'oblige tous les jours à terminer l'exécution de ma macro par une action manuelle !

aalex_38
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
3
Merci
Tu peux vérifier si ton code est bon en enregistrant les opérations manuelles dans une macro. ensuite tu compare le code de la macro avec le tien.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Voici ce que donne l'aide...
Je ne vois à nulle part Paste:=xlColumnWidths ???

PasteSpecial, méthode (objet
Range)
<object id="hhobj_1" style="left: 10px; width: 56px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="56"></object>        
<object id="hhobj_2" style="left: 98px; width: 49px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="49"></object>        
<object id="hhobj_3" style="left: 181px; width: 70px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="70"></object>

Colle dans la plage spécifiée un objet Range provenant du
Presse-papiers.

Syntaxe

expression.PasteSpecial(Paste,
Operation, SkipBlanks, Transpose)

expression   Obligatoire. Expression qui renvoie un objet
Range.

Paste   Argument de type Variant facultatif.
La partie de la plage à copier. Il peut s'agir de l'une des constantes
XlPasteType suivantes : xlPasteAll, xlPasteFormulas,
xlPasteValues, xlPasteFormats, xlPasteNotes ou
xlPasteAllExceptBorders. La valeur par défaut est xlPasteAll.

Operation   Argument de type Variant
facultatif. L'opération de collage. Il peut s'agir de l'une des constantes
XlPasteSpecialOperation suivantes : xlPasteSpecialOperationNone,
xlPasteSpecialOperationAdd, xlPasteSpecialOperationSubtract,
xlPasteSpecialOperationMultiply ou xlPasteSpecialOperationDivide.
La valeur par défaut est xlPasteSpecialOperationNone.

SkipBlanks   Argument de type Variant
facultatif. Affectez-lui la valeur True pour que les cellules vides de la
plage provenant du Presse-papiers ne soient pas collées dans la plage de
destination. La valeur par défaut est False.

Transpose   Argument de type Variant
facultatif. Affectez-lui la valeur True pour transposer les lignes et les
colonnes lors du collage de la plage. La valeur par défaut est False.

MPi²

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Oups... parti trop vite.
Sous quelle version travailles-tu ?

MPi²

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
4
Date d'inscription
samedi 2 décembre 2006
Dernière intervention
21 novembre 2007
3
Merci
Merci pour vos réponses.

Je travail avec EXCEL 2000

Quand j'enregistre la macro manuellement, j'ai le code suivant :

    Rows("1:1").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveWindow.WindowState = xlMinimized
    Windows("Classeur1").Activate
    ActiveWindow.WindowState = xlMaximized
    Rows("1:1").Select
    Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

Dans ma macro, j'ai ça :

Windows("Suivi des anos.xls").Activate
    Sheets("ET").Select
    Rows("1:1").Select
    Selection.Copy
     Sheets("coller").Select
      
    Windows("STAT").Activate
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    Selection.PasteSpecial Paste:=xlColumnWidths ', Operation:=xlNone, _
    '    SkipBlanks:=False, Transpose:=False ' => commentaire ou non l'erreur est la même.




aalex_38

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de aalex_38
Messages postés
444
Date d'inscription
mardi 27 mars 2007
Dernière intervention
1 mars 2011
3
Merci
Salut,
Je vois bien le code d'insertion mais je ne vois pas de code concernant la copie
   Windows("STATBNP").Activate
   Rows("1:1").Select
   Selection.Insert Shift:=xlDown     'Insertion
   Selection.Copy                           ' Devrait exister
   Selection.PasteSpecial Paste:=xlColumnWidths

Mais pourquoi vouloir copier la largeur des colonnes lors d'une sélection de ligne !!! A mon avis cela reviens à copier/coller la même chose

 Cliquer "Réponse Acceptée"
JML - Partageons Notre Savoir & Nos Acquis

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JM247L
Messages postés
444
Date d'inscription
mardi 27 mars 2007
Dernière intervention
1 mars 2011
3
Merci
J'ai du m'endormir sur ma réponse et je n'ai pas vu arriver le post précédent

Mais je ne crois pas que tu puisses insérer puis collage spéciale car si tu le fais manuellement, lors de l'insertion par clic droit il propose d'insérer les cellules copiées et si par le menu tu fais "Insérer/Ligne", il désactive la copie

Et en fait pourquoi insérer une ligne puisque la copie concerne le format des colonnes
















 Cliquer "Réponse Acceptée"
JML - Partageons Notre Savoir & Nos Acquis

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de JM247L
Messages postés
4
Date d'inscription
samedi 2 décembre 2006
Dernière intervention
21 novembre 2007
3
Merci
En fait, j'inserre une ligne en en-tête et je formate les largeurs de colonnes comme dans la source de l'entête.

La macro fonctionne maintenant très bien, j'ai finni par trouver la réponse ici : http://support.microsoft.com/kb/231090/fr

Il fallait remplacer Paste:=xlColumnWidths par Paste:=8

Grace à vous j'ai pu me pencher sur le problème et trouver la solution.

Bonne journée.
aalex_38

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de aalex_38

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.