La méthode PasteSpecial de la méthode Range a échoué

ndrivo Messages postés 1 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008 - 7 juil. 2008 à 12:11
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 7 juil. 2008 à 15:27
Bonjour,

j'ai un problème au niveau de PasteSpecial si vous pouvez m'aider,

D'abord j'utilise ActiveSheet.AutoFilterMode = False pour désactiver les filtres


Puis dans Feuille 1 Classeur 1 (déjà ouvert), j'efface tout avec la commande


Sub Efface_Temp() 'Efface l'onglet Temp
    Cells.Select
    Selection.Delete
ActiveSheet.DrawingObjects.Delete
End Sub


Dans la feuille 1 Classeur 2 (déjà ouvert aussi), je dimensionne la plage à copier :

Sub COPIE () 'Dimensionnement de la plage à copier vers TEMP pour chaque portefeuille sauf CANADA
        t = 0
        Do Until IsEmpty(ActiveSheet.Cells(1 + t, 1)) 'comptage de lignes à copier
        t = t + 1
        Loop
        v = 0
        Do Until IsEmpty(ActiveSheet.Cells(1, v + 1))  'comptage de colonnes à copier
            v = v + 1
        Loop
     ActiveSheet.Range(Cells(1, 1), Cells(t, v)).Select
     Selection.Copy
End Sub

Puis je réactive la feuille 1 Classeur 2 pour y coller les données :

 Workbooks(2).Worksheets(1).Activate
        Range("A1").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Et c'est sur PasteSpecila qu'il dit que:
 La méthode PasteSpecial de la classe Range a échoué.

Je vous en remrcie d'avance !!!!

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
7 juil. 2008 à 15:27
Salut,

comme je le dit depuis un moment les select, activat et autre copy/paste ne servent a rien quand on ne souhait transferer que des valeurs et rien d'autre.
Remplace toute la partie copy/paste par la ligne bleu

Sub COPIE () 'Dimensionnement de la plage à copier vers TEMP pour chaque portefeuille sauf CANADA
        t = 0
        Do Until IsEmpty(ActiveSheet.Cells(1 + t, 1)) 'comptage de lignes à copier
        t = t + 1
        Loop
        v = 0
        Do Until IsEmpty(ActiveSheet.Cells(1, v + 1))  'comptage de colonnes à copier
            v = v + 1
        Loop
      Workbooks(2).Worksheets(1).Range("A1").Range(Cells(1, 1), Cells(t, v)).Value = ActiveSheet.Range(Cells(1, 1), Cells(t, v)).Value

End Sub

A+
0
Rejoignez-nous