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 :

Problème de syntaxe [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Problème de syntaxe
    Bonjour,
    Sur une feuille de calcul nommée "Accueil", j'ai placé plusieurs boutons d'option Bouton_A, Bouton_B...à l'aide de la "Boîte à Outils Contrôles".
    Je souhaite leur affecter une propriété "Visible = False"
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub COUCOU()
    For Each btn In Array("Bouton_A", "Bouton_B")
          Sheets("Accueil").Controls(btn).Visible = False
    Next btn
    End Sub
    Lors de l'exécution de cette macro, un message d'erreur est apparu
    "Cet objet ne gère pas cette propriété ou méthode (erreur 438)"

    J'ai essayé une autre variante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub COUCOU()
    For Each btn In Array(Bouton_A, Bouton_B)
          Sheets("Accueil").btn.Visible = False
    Next btn
    End Sub
    Même message d'erreur

    Remarques :
    - Ma feuille comprend 10 boutons
    - J'ai 8 boutons à masquer, mais j'ai préféré simplifier ici.
    - Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Accueil").Bouton_A.Visible = False
    fonctionne bien, il faut le recopier 7 fois, mais bon...

    Quelqu'un a-t-il une solution pour corriger ce petit problème de syntaxe.
    Merci. Cordialement. Marcel.

  2. #2
    Membre expérimenté
    Inscrit en
    Août 2009
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Août 2009
    Messages : 284
    Par défaut
    Essai comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Sub COUCOU()
    Dim Tableau
    Tableau=Array("Bouton_A", "Bouton_B")
    For i=0 to Ubound(Tableau)
          Sheets("Accueil").Controls(Tableau(i)).Visible = False
    Next i
    End Sub

  3. #3
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Ceci sera peut-être une piste pour toi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Hide()
     
    Dim Btn As Shape
     
    For Each Btn In ThisWorkbook.Sheets("sheet1").Shapes
        Btn.Visible = False
    Next Btn
     
    End Sub
    Attention, en l'état il n'y a pas de distinction de l'objet, si tu as d'autres formes elles seront également masquées.

    A+

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Pb de syntaxe
    Pour Diude
    Même message d'erreur

    Pour FVandermeulen

    Ton code semble considérer tous les boutons. Or, je ne veux en sélectionner seulement 8 sur 10. Je pense donc être obligé de déclarer un Tableau.

    Merci à tous les deux.

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    J'ai bien dis que c'était une piste, j'ai pas testé mais une boucle avec le numéro de la forme devrait le faire, exemple (je répète, non testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Hide()
     
    Dim i as byte
     
    for i = 1 to 8
         ThisWorkbook.Sheets("sheet1").Shapes(i).visible = false
    next i
     
    End Sub
    A+

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour à tous,

    j'ai placé plusieurs boutons d'option Bouton_A, Bouton_B
    c' est plus simple quand les controles se terminent par un numéro.

    Exemple pour masquer les 8 premiers options boutons nommés "OptionButton1 à 8"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 8
    ActiveSheet.Shapes("OptionButton" & i).Visible = False
    Next

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Euréka
    Grâce à ces indications, j'ai trouvé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Tableau
    Tableau = Array("A","B")
    For Each BTN In Tableau
         Sheets("Accueil").Shapes("Bouton_" & BTN).Visible = False
    Next
    Il fallait remplacer "Controls" par "Shapes"
    La concaténation fonctionne également.
    Merci à tous.

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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