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 :

Ecrire un code en plus court


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Ecrire un code en plus court
    Bonjour,
    Je tape ce code pour un OptionButton et il y a en seize, est-il possible de raccourcir ce code ?
    Je ne sais pas faire autrement, alors si vous pouvez me montrer comment faire ce serait super sympa.
    Merci par avance

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Private Sub Opt1_Click()
    If Opt1.Value = True Then
        Opt1.Top = 6
        Opt2.Visible = False
        Opt3.Visible = False
        Opt4.Visible = False
        Opt5.Visible = False
        Opt6.Visible = False
        Opt7.Visible = False
        Opt8.Visible = False
        Opt9.Visible = False
        Opt10.Visible = False
        Opt11.Visible = False
        Opt12.Visible = False
        Opt13.Visible = False
        Opt14.Visible = False
        Opt15.Visible = False
        Opt16.Visible = False
        CmbOK.Top = 30
        CmbFerm.Top = 60
        CmbFerm.Left = 30
        CmbAnnul.Top = 30
        FrmChoix.Height = 110
        FrmChoix.Width = 125
    Else
    Opt1.Value = False
        Opt1.Top = 6
        Opt2.Visible = True
        Opt3.Visible = True
        Opt4.Visible = True
        Opt5.Visible = True
        Opt6.Visible = True
        Opt7.Visible = True
        Opt8.Visible = True
        Opt9.Visible = True
        Opt10.Visible = True
        Opt11.Visible = True
        Opt12.Visible = True
        Opt13.Visible = True
        Opt14.Visible = True
        Opt15.Visible = True
        Opt16.Visible = True
        CmbOK.Top = 162
        CmbFerm.Top = 162
        CmbAnnul.Top = 162
        FrmChoix.Height = 205
        FrmChoix.Width = 245
    End If
    End Sub

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Par défaut
    si ca peut aider, j'ai fait ca avec 6 combobox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For j = 1 To 6
        Set list_temp = Sheets("Calcul coût").OLEObjects("Combobox" & j).Object
        list_temp.Clear
    Next j
    ce code vide les 6 combobox l'une apres l'autre

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 28
    Par défaut
    Apres verif , le code suivant fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim opt As Object
     
    For j = 1 To 17
        Set opt = Sheets("Feuil1").OLEObjects("OptionButton" & j).Object
        opt.Enabled = False
    Next
    si tu veux conserver la propriété visible, voila une variante(il suffit de supprimer ".object"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim opt As Object
    For j = 1 To 17
        Set opt = Sheets("Feuil1").OLEObjects("OptionButton" & j)
        opt.Visible = False
    Next

  4. #4
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Merci, j'essaies et je te tiens au courant
    J'apportes une précision importante que j'ai oublié, les OptionButtons sont dans un formulaire que j'appelle par un click sur un bouton, mais non rattachés à une feuille.
    Désolé d'avoir manqué cette information

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    sinon, dans un usf, tu a la possibilité d'utiliser controls
    cest le meme genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i = 1 to 16
    me.controls("OptionButton"&i).visible = false
    next
    le pb c'est que si bouton1 = true et 2 a 16 false tout vas bien, mais si c'est le 5. il faut faire 1 a 4 et 6 a 16
    donc une petite gymastique en perspective mais bon , ça marche
    bon courage

  6. #6
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir,
    je ne sais pas comment est structurée ta feuille mais si tu choisis Opt1 (true), les autres boutons Opt se mettent à false automatiquement.

    fred65200

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

Discussions similaires

  1. Ecrire en plus court le code
    Par Crack1986 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/03/2012, 18h46
  2. Comment ecrire le code plus simplement ?
    Par ROCHER1 dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/01/2012, 22h00
  3. Avoir du code plus court.
    Par defacta dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/04/2010, 08h14
  4. [VB.NET] Comment ecrire du code entre <title>
    Par ykane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 10/05/2004, 16h58
  5. Réponses: 2
    Dernier message: 21/03/2004, 18h57

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