Probleme méthode PasteSpécial [Résolu]

Lameche15 112 Messages postés mardi 9 septembre 2008Date d'inscription 5 mars 2018 Dernière intervention - 17 févr. 2015 à 12:01 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 18 févr. 2015 à 13:04
Bonjour,

La méthode PasteSpécial de l'objet range à échoué.

Voilà le message d'erreur que je reçois en lançant la macro suivante:

Private Sub CommandButtonOK_Click()


Dim numsemaine As Integer

Application.Selection.Copy
'MsgBox ActiveSheet.Name

numsemaine = Semaine.TextBoxNum
Sheets("Semaine Type").Copy Before:=Sheets(1)
Sheets("Semaine Type (2)").Select
Sheets("Semaine Type (2)").Name = "Sem " & numsemaine

Worksheets("Sem " & numsemaine).Activate
Worksheets("Sem " & numsemaine).Range("B2") = "Semaine n° " & numsemaine


Worksheets("Sem " & numsemaine).Range("D11:Q39").Select
Worksheets("Sem " & numsemaine).Range("D11:Q39").PasteSpecial

Semaine.Hide



End Sub


Qqn peut-il m'aider à trouver un début de piste de recherche?
Ce code marchait parfaitement dans un autre classeur
Je suis perdu!!

Merci d'avance
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 17/02/2015 à 18:17
1
Merci
A savoir remplacer Range("F7:S35") par qqch du style "selection"

Elle est bien bonne, celle-là ===>>> Mais FAIS-le donc !

Et n'oublie pas que, par définition, l'objet selection est forcément celui de la feuille en cours. Il ne faut donc pas préciser la feuille où est faite la sélection.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Merci ucfoutu 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 76 internautes ce mois-ci

Commenter la réponse de ucfoutu
Lameche15 112 Messages postés mardi 9 septembre 2008Date d'inscription 5 mars 2018 Dernière intervention - 17 févr. 2015 à 17:11
0
Merci
Après avoir lu de nombreux posts sur le sujet j'ai l'impression que mon problème est insoluble.
Bref,
Je souhaiterais changer de méthode et utiliser un truc du style:

Sheets(1).Range(X)=Sheets(2).Range(Y)
Mais en conservant les mises en forme
notamment la couleur de remplissage.

Qqn sait-il faire cela?

Merci d'avance
Commenter la réponse de Lameche15
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 17 févr. 2015 à 17:31
0
Merci
Bonjour,
Je souhaiterais changer de méthode et utiliser un truc du style:

Sheets(1).Range(X)=Sheets(2).Range(Y)
Mais en conservant les mises en forme
notamment la couleur de remplissage.
Qqn sait-il faire cela?

Evidemment. On sait tous faire cela.
Ouvre donc ton aide VBA à la méthode Range.Copy et utilise-là donc avec ses arguments, dont l'argument destination.
Et cesse de "travailler" avec ces affreuses méthodes de Select, Activate, Copy, Paste, etc ... Travaille directement depuis VBA avec les objets Excel
Commenter la réponse de ucfoutu
Lameche15 112 Messages postés mardi 9 septembre 2008Date d'inscription 5 mars 2018 Dernière intervention - 17 févr. 2015 à 18:04
0
Merci
Merci ucfoutu,

Malheureusement je ne trouve pas comment faire si plage cible n'est pas prédéfinie dans ma macro.
Je voudrais que la plage selectionnée d'une feuille se copy dans une plage prédéfinie d'une autre.

Worksheets(nomfeuille).Range("F7:S35").Copy _
Destination:=Worksheets("Sem" & numsemaine).Range("D11")

A savoir remplacer Range("F7:S35") par qqch du style "selection"
Commenter la réponse de Lameche15
Lameche15 112 Messages postés mardi 9 septembre 2008Date d'inscription 5 mars 2018 Dernière intervention - 18 févr. 2015 à 08:57
0
Merci
Moi je dis, à ce niveau la de bêtise, il faut arrêter le vba.

Merci ucfoutu de m'avoir sorti la tête du guidon...
Commenter la réponse de Lameche15
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 18 févr. 2015 à 13:04
0
Merci
Non : pas "arrêter le VBA", mais simplement commencer à t'y intéresser. Il est à la portée de tous, crois-moi.
Il te faut maintenant libérer cette discussion. Cela se fait par un clic sur le tag RESOLU au niveau de ton tout premier message.
Commenter la réponse de ucfoutu

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.