Problème de 'paste' en VBA excell

Résolu
koolman61 Messages postés 25 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 17 août 2008 - 20 juil. 2008 à 16:35
koolman61 Messages postés 25 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 17 août 2008 - 22 juil. 2008 à 14:18
Bonjour,



Voilà le problème, chaque fois qu'il arrive à pastespecial, j'ai un message d'erreur.



erreur d'execution '1004'

La méthode PasteSpécial de la classe Range a échoué.

Je ne trouve pas la solution.

merci de votre aide.


b'def des variables

Dim k As String
Dim nma As String
Dim typ As String
Dim pat As String


Application.CutCopyMode = False 'Rend le presse-papier disponible et vide


Range("j2:o11").Copy 'selection des données à copier
   
'recherche du classeur machines le 14/07/08 par Pascal


nma = Range("b8").Value
    
    typ = Range("d10").Value 'type de machine sur la feuille de saisie
    pat = "C:\Documents and Settings\Pascal\Bureau\fiche de travail"
    'trouve le bon classeur    If typ "ERE" Or typ "BT" Then
        Workbooks.Open (pat & "ere.xls")
        Workbooks("ERE.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Sheets(nma).Cells(k, 1).Select
    'coller les cellules copiées  C'est ici que ça déconne pour chaque type de machine
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
    'sauvegarde
        Workbooks("ERE.xls").Save
    'fermeture du classeur
        Workbooks("ERE.xls").Close    ElseIf typ "KMS" Or typ "EKS" Then
        Workbooks.Open (pat & "KMSEKS.xls")
        Workbooks("KMSEKS.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Worksheets(nma).Cells(k, 1).Select
    'coller les cellules copiées
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
    'sauvegarde
        Workbooks("KMSEKS.xls").Save
    'fermeture du classeur
        Workbooks("KMSEKS.xls").Close    ElseIf typ "ECE" Or typ "ECP" Then
        Workbooks.Open (pat & "ECPECE.xls")
        Workbooks("ECPECE.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Worksheets(nma).Cells(k, 1).Select
    'coller les cellules copiées
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
    'sauvegarde
        Workbooks("ECPECE.xls").Save
    'fermeture du classeur
        Workbooks("ECPECE.xls").Close
    ElseIf typ = "EFG" Then
        Workbooks.Open (pat & "EFG.xls")
        Workbooks("EFG.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Worksheets(nma).Cells(k, 1).Select
    'coller les cellules copiées
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
     'sauvegarde
        Workbooks("EFG.xls").Save
    'fermeture du classeur
        Workbooks("EFG.xls").Close
    ElseIf typ = "ETV" Then
        Workbooks.Open (pat & "ETV.xls")
        Workbooks("ETV.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Worksheets(nma).Cells(k, 1).Select
    'coller les cellules copiées
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
    'sauvegarde
        Workbooks("ETV.xls").Save
    'fermeture du classeur
        Workbooks("ETV.xls").Close   ElseIf typ "ETX" Or typ "EKX" Then
        Workbooks.Open (pat & "ETXEKX.xls")
        Workbooks("ETXEKX.xls").Activate
    'se placer sur la feuille machine
        Worksheets(nma).Activate
    'trouver dernière ligne vide
        k = Sheets(nma).UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
    'se placer sur 1ère cellule vide
        Worksheets(nma).Cells(k, 1).Select
    'coller les cellules copiées
            Selection.PasteSpecial Paste:=xlpastevalue, operation:=xlNone, skipblanks:=False, Transpose:=False
            Selection.PasteSpecial Paste:=xlformat, operation:=xlNone, skipblanks:=False, Transpose:=False
    'sauvegarde
        Workbooks("ETXEKX.xls").Save
    'fermeture du classeur
        Workbooks("ETXEKX.xls").Close
               
    End If


End Sub

11 réponses

Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
22 juil. 2008 à 14:00
Peut-être parce que c'est xlPasteValues avec un "s" ?

Molenn
3
Rejoignez-nous