IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier automatiquement une mise en forme d'une worksheet à une autre + Error 1004 [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 143
    Points
    143
    Par défaut Copier automatiquement une mise en forme d'une worksheet à une autre + Error 1004
    Bonjour à tous,

    Je débute sur Excel, donc peut-être que c'est tout simple, mais je ne trouve pas le moyen de le faire...

    En gros, j'ai un fichier Excel qui a plusieurs worksheets.
    Je voudrais que quand l'utilisateur change la couleur d'une cellule de la worksheet numéro 1, la couleur d'une cellule de la worksheet soit automatiquement actualisée à partir de la première.

    N'ayant pas trouvé de fonction applicable à la cellule même, j'ai voulu mettre le code dans le changement d'onglet en cherchant les méthode de la worksheet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_xxxxxxx()
     
    Call Ma_macro
     
    End Sub
    Qui appelle la macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Ma_macro()
     
        Sheets(" Dashboard-sum up-AT").Select
        Range("E2").Select
        Selection.Copy
        Sheets("ARD per Countries").Select
        Range("D5:E5").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
     
    End Sub
    La méthode Worksheet_Change n'est jamais appelée;
    La méthode Worksheet_SelectChange est appelée au moindre clic sur une cellule;
    La méthode Worksheet_Activate est appelée en boucle...
    Aucune ne me va: d'où est-ce que je peux appeler cette fonction?

    Par ailleurs, si je copie le code de la macro depuis l'une des méthodes ci-dessus, j'ai un problème que je ne comprends pas: j'obtiens l'erreur "run-time error '1004' select method of range class field" sur la ligne de code alors que si j'appelle la macro avec le même code, cette erreur n'apparaît pas.
    J'ai essayé tout ce que j'ai trouvé sur le web, mais rien ne me va...

    Merci d'avance pour toute aide!

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Évites les Select, elles sont responsables de tes maux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Ma_macro()
     
    Worksheets("Dashboard-sum up-AT").Range("E2").Copy
    Worksheets("ARD per Countries").Range("D5:E5").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
    End Sub
    Utilise ensuite Worksheet_Activate, tu n'auras pas de boucle infinie
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    Désolé pour la réponse tardive: merci beaucoup, c'est parfait!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Copier une mise en forme conditionnelle
    Par thomanneca dans le forum Excel
    Réponses: 5
    Dernier message: 14/01/2014, 20h51
  2. Copier/coller une mise en forme d'une ligne compléte en vba
    Par ptitrault dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2009, 15h38
  3. Réponses: 2
    Dernier message: 11/07/2006, 17h08
  4. Réponses: 6
    Dernier message: 16/06/2006, 14h20
  5. Sauvegarder une mise en forme dans une RichTextBox
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/12/2005, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo