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 simplification de code VBA - Procédure trop grande


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut Problème simplification de code VBA - Procédure trop grande
    Bonjour à toutes et à tous.

    J'ai un problème avec un code VBA, celui-ci est trop grand et un message m'indique "procédure trop grande".

    J'ai 8 commandbutton sur une feuille et je les masque ou les affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Commandbutton1.visible = true
    Commandbutton2.visible = false
    Commandbutton3.visible = false
    Commandbutton4.visible = false
    Commandbutton5.visible = false
    Commandbutton6.visible = false
    Commandbutton7.visible = false
    Commandbutton8.visible = false
    Et ainsi de suite pour la valeur true au commandbutton2,etc...

    Est-il possible d'alléger un peu le code?

    Peut-on faire un regroupement de bouton, comme par exemple dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    commandbutton1.visible = true
    commandbutton("1:8").visible = false
    Merci à tous pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Seulement si tes boutons sont sur un userform :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For i = 1 To 8
            Me.Controls("CommandButton" & i).Visible = False
            Me.Controls("CommandButton" & i).Value = False
        Next i

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Merci pour ta réponse rapide.

    Malheureusement, mes boutons sont sur une feuille de calcul.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Tu l'aurais dit tout de suite, tu aurais gagné du temps...

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

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    J'ai essayé ta méthode, malheureusement j'ai un message d'erreur :

    Référence incorrecte ou non qualifiée
    et le .shapes est en surbrillance.

    Merci encore pour ton aide

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Oups, je n'ai donné qu'une partie du code (ça doit être la chaleur) :

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

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    ça fonctionne merci beaucoup

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

Discussions similaires

  1. Diviser une procédure trop grande
    Par tenaka69 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/08/2007, 09h45
  2. Procédure trop grande
    Par bobie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2007, 14h30
  3. Problème d'un Code VBA pour créer un répertoire
    Par cfidko dans le forum VBA Access
    Réponses: 24
    Dernier message: 26/06/2007, 14h30
  4. Problème SQL dans code VBA
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 15/05/2007, 13h22
  5. [vba] Procedure trop grande
    Par GarsDuCalvados dans le forum VBA Access
    Réponses: 9
    Dernier message: 04/12/2006, 08h54

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