VBA - Impossible de faire marcher le pastespecial

potain_vb Messages postés 6 Date d'inscription mercredi 22 juin 2005 Statut Membre Dernière intervention 10 juin 2009 - 10 juin 2009 à 11:57
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 10 juin 2009 à 14:02
Salut a tous,
Voila j'ai une bonne grosse macro excel et je ne comprend pas pourquoi  je n'arrive pas a faire fonctionner cette fonction pastespecial.. j'ai beau la tourner dans tous les sens ca me ressort toujours l'erreur la methode pastspecial a échoué.... Voici une tite partie comme exemple
enfait je prend la totalité d'une feuille pour la coller dans une autre d'un autre classeur
je veux d'abord copier la largeur des colonnes puis apres je refait un collage pour les valeurs
le pire c'est que lorsqu'il me fait l'erreur et que je suis en débugage si je retourne dans ma selection et que je continu la manip a la main , elle se fait très bien...

[vba]
Workbooks("09001Q-MC110A.xls").Activate
Worksheets("Sheet2").Cells.Select
Selection.Copy  
Workbooks("fichier_unique.xls").Activate
Sheets("MC110A").Activate
Dernierelignefic = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
        'Copie les données
        Worksheets("MC110A").Rows(Dernierelignefic & ":" & Dernierelignefic).Select
        selection.PasteSpecial Paste:=xlColumnWidths

        ActiveSheet.Paste

/vba

Connaissez vous la syntaxe donc irréprochable du pastespecial pour etre sur que cela fonctionne ?

j'ai testé donc
selection.pastespecial....
activesheet.pastespecial
meme en insistant sur le fait que je sois dans tel classeur dans telle feuille sur telle cellule..
J'ai testé en mettant au lieu de private en public..
pourtant ce collage reste assez simple je pense...

Merci de m'aider car je bloque sur ca pour continuer
car en fait la je teste jsute cette fonction car a terme il faudra que la selection que je veux copier se retrouve en dessous de ce qu'i ly a déjà dans la nouvelle ( d'ou l'uilisation de la fonction pour savoir la derniere ligne utilisée )

1 réponse

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
10 juin 2009 à 14:02
Salut,

Worksheets("Sheet2").Cells.Select
Selection.Copy  --> ces 2 lignes copie la totalité de la feuille et j'insistes sur la totalité !

Worksheets("MC110A").Rows(Dernierelignefic & ":" & Dernierelignefic).Select
        selection.PasteSpecial Paste:=xlColumnWidths --> alors que c'est 2 lignes copie la totalité de la feuille source
sur qu'une partie de la feuille de destination.

En claire le contenant est plus petit que le contenu.

La methode que tu emplois n'est valable que si et seulement si la plage de destination est la cellule A1 de la feuille de destination.

Pour conclure tu doits travailler a ne copier que les cellules qui t'interesse et de t'assuré que la plage de destination est plus grande que la plage source

A+
0
Rejoignez-nous