OVH Cloud OVH Cloud

Erruer 1004 - La méthode PastSpecial ....

3 réponses
Avatar
tip.tiptop
j'ai, par la fonction Enregistrer Macro, obtenu quelques lignes de codes.
Par la suite, j'ai adapté celles-ci pour les faire s'éxécuter sur toutes les
feuilles de mon classeur.

Les lignes enregistrées par la fonction Enregistrer Macro fonctionnes.
Dans l'étape suivante, je me suis contenté de mettre ces lignes dans une
boucle.
Lorsque je lance l'éxécution de ma nouvelle Macro j'obtient le message
suivant:

Erreur 1004
La méthode Pastspecial de la classe Range a échoué.

Sub MEF_Depuis_Modele()
'
''*********************************************************
'Déclaration des variables
'*********************************************************
Dim sh As Variant
Dim Name As String

'*********************************************************
'
'*********************************************************
For Each sh In Sheets
Name = sh.Name

'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele, Mod_Edition_Fiche & Effectifs"
'*********************************************************
If Name <> " Répertoire" Then
If Name <> "1-Modele" Then
If Name <> "Mod_Edition_Fiche" Then
If Name <> " Effectifs" Then

'*********************************************************
'
'*********************************************************
Sheets("1-Modele").Select
'ActiveSheet.Unprotect
Range("A1:P59").Select
Selection.Copy

Sheets(Name).Select
'ActiveSheet.Unprotect
Range("A1:p59").Activate
Application.CutCopyMode = False
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End If
End If
End If
Next
End Sub

Avez-vous une idée sur ce comportement pour le moins bizarre

3 réponses

Avatar
isabelle
bonjour tip.tiptop,

il ne faut pas utiliser un nom de variable déjà utilisé par excel,

par exemple, il faudrait remplacer Name par MyName

il faut également inverser ces deux lignes,

Application.CutCopyMode = False
Selection.PasteSpecial Paste:=xlPasteFormats,

car là, tu vide le presse papier ( CutCopyMode = False) avant d'avoir coller les info.

isabelle


j'ai, par la fonction Enregistrer Macro, obtenu quelques lignes de codes.
Par la suite, j'ai adapté celles-ci pour les faire s'éxécuter sur toutes les
feuilles de mon classeur.

Les lignes enregistrées par la fonction Enregistrer Macro fonctionnes.
Dans l'étape suivante, je me suis contenté de mettre ces lignes dans une
boucle.
Lorsque je lance l'éxécution de ma nouvelle Macro j'obtient le message
suivant:

Erreur 1004
La méthode Pastspecial de la classe Range a échoué.

Sub MEF_Depuis_Modele()
'
''*********************************************************
'Déclaration des variables
'*********************************************************
Dim sh As Variant
Dim Name As String

'*********************************************************
'
'*********************************************************
For Each sh In Sheets
Name = sh.Name

'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele, Mod_Edition_Fiche & Effectifs"
'*********************************************************
If Name <> " Répertoire" Then
If Name <> "1-Modele" Then
If Name <> "Mod_Edition_Fiche" Then
If Name <> " Effectifs" Then

'*********************************************************
'
'*********************************************************
Sheets("1-Modele").Select
'ActiveSheet.Unprotect
Range("A1:P59").Select
Selection.Copy

Sheets(Name).Select
'ActiveSheet.Unprotect
Range("A1:p59").Activate
Application.CutCopyMode = False
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
End If
End If
End If
End If
Next
End Sub

Avez-vous une idée sur ce comportement pour le moins bizarre




Avatar
tip.tiptop
Merci Isabelle pour ton aide.

Ca marche
Juste un détail que je m'explique pas, mais bon, on va faire avec.
La macro s'éxécute jusqu'a une feuille lambda et plante a nouveau avce
apparition du message: erreur 1004 la méthode........

Je quitte et relance l'exécution de ma macro qui passe la feuille qui a
planté le code au coup d'avant jusqu'a se planter à nouveau sur une autre
feuille.

Aprés X relance je reussi a parcourir tout mon classeur sans plantage.
bizarre non?

"tip.tiptop" a écrit dans le message de news:
4575e559$0$10065$
j'ai, par la fonction Enregistrer Macro, obtenu quelques lignes de codes.
Par la suite, j'ai adapté celles-ci pour les faire s'éxécuter sur toutes
les feuilles de mon classeur.

Les lignes enregistrées par la fonction Enregistrer Macro fonctionnes.
Dans l'étape suivante, je me suis contenté de mettre ces lignes dans une
boucle.
Lorsque je lance l'éxécution de ma nouvelle Macro j'obtient le message
suivant:

Erreur 1004
La méthode Pastspecial de la classe Range a échoué.

Sub MEF_Depuis_Modele()
'
''*********************************************************
'Déclaration des variables
'*********************************************************
Dim sh As Variant
Dim Name As String

'*********************************************************
'
'*********************************************************
For Each sh In Sheets
Name = sh.Name

'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele, Mod_Edition_Fiche & Effectifs"
'*********************************************************
If Name <> " Répertoire" Then
If Name <> "1-Modele" Then
If Name <> "Mod_Edition_Fiche" Then
If Name <> " Effectifs" Then

'*********************************************************
'
'*********************************************************
Sheets("1-Modele").Select
'ActiveSheet.Unprotect
Range("A1:P59").Select
Selection.Copy

Sheets(Name).Select
'ActiveSheet.Unprotect
Range("A1:p59").Activate
Application.CutCopyMode = False
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
End If
End If
End If
End If
Next
End Sub

Avez-vous une idée sur ce comportement pour le moins bizarre




Avatar
isabelle
bonjour tip.tiptop,

sans voir le fichier c'est difficile de répondre,
si tu peut le "déposer" là: http://www.cjoint.com
et venir donner ici le lien de téléchargement que le site va donner,
je pourrai regarder ça de plus près.

isabelle

Merci Isabelle pour ton aide.

Ca marche
Juste un détail que je m'explique pas, mais bon, on va faire avec.
La macro s'éxécute jusqu'a une feuille lambda et plante a nouveau avce
apparition du message: erreur 1004 la méthode........

Je quitte et relance l'exécution de ma macro qui passe la feuille qui a
planté le code au coup d'avant jusqu'a se planter à nouveau sur une autre
feuille.

Aprés X relance je reussi a parcourir tout mon classeur sans plantage.
bizarre non?

"tip.tiptop" a écrit dans le message de news:
4575e559$0$10065$

j'ai, par la fonction Enregistrer Macro, obtenu quelques lignes de codes.
Par la suite, j'ai adapté celles-ci pour les faire s'éxécuter sur toutes
les feuilles de mon classeur.

Les lignes enregistrées par la fonction Enregistrer Macro fonctionnes.
Dans l'étape suivante, je me suis contenté de mettre ces lignes dans une
boucle.
Lorsque je lance l'éxécution de ma nouvelle Macro j'obtient le message
suivant:

Erreur 1004
La méthode Pastspecial de la classe Range a échoué.

Sub MEF_Depuis_Modele()
'
''*********************************************************
'Déclaration des variables
'*********************************************************
Dim sh As Variant
Dim Name As String

'*********************************************************
'
'*********************************************************
For Each sh In Sheets
Name = sh.Name

'*********************************************************
'Ne pas faire de traitement sur feuille :
'" Répertoire, 1-Modele, Mod_Edition_Fiche & Effectifs"
'*********************************************************
If Name <> " Répertoire" Then
If Name <> "1-Modele" Then
If Name <> "Mod_Edition_Fiche" Then
If Name <> " Effectifs" Then

'*********************************************************
'
'*********************************************************
Sheets("1-Modele").Select
'ActiveSheet.Unprotect
Range("A1:P59").Select
Selection.Copy

Sheets(Name).Select
'ActiveSheet.Unprotect
Range("A1:p59").Activate
Application.CutCopyMode = False
Selection.PasteSpecial Paste:=xlPasteFormats,
Operation:=xlNone, SkipBlanks:úlse, Transpose:úlse
End If
End If
End If
End If
Next
End Sub

Avez-vous une idée sur ce comportement pour le moins bizarre