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 :

Modifier les propriétés d'un bouton créé par une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Modifier les propriétés d'un bouton créé par une macro
    Bonjour,

    Je souhaiterai modifier (après sa création) les propriétés d'un bouton créé dans une page par une macro. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub test()
        Set nouvelle_page = Sheets.Add(After:=Sheets("Feuil1"))
        nouvelle_page.Name = "test"
     
        Set Obj = ActiveWorkbook.ActiveSheet.OLEObjects.Add("Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False)
        With Obj
            .Left = 220
            .Top = 90
            .Width = 150
            .Height = 40
            .Object.Caption = "startstop"
        End With
     
        test1
     
    End Sub
     
    Sub test1()
        Sheets("test").CommandButton1.BackColor = &HFF00&
     
    End Sub
    Excel me renvoi :

    Erreur d'exécution '438'
    Propriété ou méthode non gérée par cet objet.

    Pour information, sur un deuxième PC utilisant la même version d'Excel, je n'ai pas l'erreur.
    Je pense donc à un problème de configuration d'Excel : case à cocher.

    Savez vous d'où cela peut venir?

    Merci

    Anthony

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Personne n'a d'idée ?

    J'ai la sensation, qu'il ne trouve pas l'objet tout juste crée. Peut-être un problème de "compilation"...
    En tout cas pourquoi ça marche sur un Pc et pas un autre, aucune idée....

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour, bonjour,

    le message d'erreur ne suffit pas pour répondre car sans indiquer la ligne déclenchant l'erreur …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Oui effectivement, c'est cette ligne qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("test").CommandButton1.BackColor = &HFF00&

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Rien ne m'interpelle, à part si la feuille "test" n'existe pas ou s'il n'y a pas de contrôle de type bouton …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Oui ça ne m'étonne pas, car ça marche sur un pc et pas l'autre. Je ne pense pas à un problème de code, mais plus à un problème de configuration d'Excel ou VBA.
    Au moment ou la ligne est exécuté ça donne l'impression qu'il ne sait pas qu'un bouton a été crée.
    Une fois que la macro test est terminée (arrêté par l'erreur), et que je relance uniquement la macro test1 et cela fonctionne...

  7. #7
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Tenter l'instruction DoEvents juste avant la ligne déclenchant l'erreur (après la création), sait-on jamais …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Ça ne change rien ....

    Mais je viens de trouver une nouvelle piste, l'erreur apparait lorsque Visual Basic est ouvert, si j'ouvre uniquement Excel il n'y a pas de problème.
    Je suppose donc un problème de configuration de VB...

  9. #9
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Et en utilisant une variable "Shape" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Sub test()
     
        Dim nouvelle_page As Worksheet
        Dim Obj As OLEObject
     
        Set nouvelle_page = Sheets.Add(After:=Sheets("Feuil1"))
     
        nouvelle_page.Name = "test"
     
        Set Obj = nouvelle_page.OLEObjects.Add("Forms.CommandButton.1")
     
        With Obj
     
            .Left = 220
            .Top = 90
            .Width = 150
            .Height = 40
            .Object.Caption = "startstop"
     
        End With
     
        test1
     
    End Sub
     
    Sub test1()
     
        Dim S As Shape
     
        Set S = Sheets("test").Shapes("CommandButton1")
        S.Fill.BackColor.RGB = RGB(255, 0, 0)
     
    End Sub
    Hervé.

Discussions similaires

  1. Modifier les propriétès d'un bouton dynamique
    Par chiti dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/05/2012, 01h38
  2. Réponses: 10
    Dernier message: 05/11/2007, 15h46
  3. [VBA-E] Modifier les propriétés d'un control par une routine
    Par formath dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2007, 10h45
  4. Réponses: 3
    Dernier message: 11/01/2006, 12h01
  5. Modifier les propriétés d'un fichier
    Par manu1407 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/11/2005, 10h39

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