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 :

Ordre des checkbox dans un frame [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut Ordre des checkbox dans un frame
    Bonjour,

    je suis novice en VBA et rencontre le problème suivant :

    Dans un userform, j'ai créé un frame dans lequel j'ai placé 8 checkbox l'un en dessous de l'autre. Mon objectif est de créer une chaine de caractères avec l'intitulé des checkbox sélectionnés.
    Exemple : imaginons que mes checkbox s'appellent A1, A2, A3... si je coche A2, A3 et A6, j'aimerais que ma chaine se nomme"_A2_A3_A6".

    Mon problème est que la chaine qui se crée ne respecte pas l'ordre vertical du cochage. Dans mon exemple précédent, je vais avoir par exemple "_A2_A6_A3"

    Voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ch_comp = ""
    For Each bouton_compet In Frame_competences.Controls
          If bouton_compet.Value Then ch_comp = "_" + bouton_compet.Caption + ch_comp
    Next
    Je ne vois de quoi peut venir ce non respect de l'ordre vertical des cases cochées. Je précise que j'ai bien nommé mes checkbox : checkbox1, checkbox2,...

    Merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour,
    comme veux tu respecter l'ordre si tu place l’ancienne valeur à la fin?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ch_comp = "_" + bouton_compet.Caption + ch_comp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ch_comp = ""
    For i = 1 To 3
    If Me.Controls("CheckBox" & i).Value = True Then
        If ch_comp = "" Then
             ch_comp = Me.Controls("CheckBox" & i).Caption
        Else
             ch_comp = ch_comp & "_" & Me.Controls("CheckBox" & i).Caption
        End If
    End If
    Next
    Debug.Print ch_comp

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup, ça marche. mais je signale que mon souci ne se situait pas au niveau de l'ordre inverse, mais sur le fait que l'ordre dans la chaine était différent de celui de mes checkbox.

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

Discussions similaires

  1. Modifier l'ordre des objets dans dans une liste
    Par Mac_Gyver dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2005, 11h55
  2. changer l'ordre des dates dans table
    Par lordyan dans le forum Requêtes
    Réponses: 11
    Dernier message: 14/01/2005, 11h12
  3. [Portal 9iAS] : ordre des items dans une région
    Par melitta dans le forum Oracle
    Réponses: 8
    Dernier message: 21/10/2004, 14h01
  4. Ordre des tests dans la clause WHERE
    Par Tans98 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 22/09/2004, 10h52
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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