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 :

[VBA-E] masquer une combo lorsqu'elle est vide


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut [VBA-E] masquer une combo lorsqu'elle est vide
    Bonjour,


    comment masquer une combobox lorsqu'elle est vide et la faire réapparaitre dans le cas contraire.

    merci

    a+

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    En testant la plage de cellules qui renseigne ton combo... Pas évident, car très lent pour le nbre de combos que tu as.
    Peut-être en comparant la plage elle-même avec une plage identique d'une colonne vide. Visible = ColCombo = ColTest. Pas testé.
    Bon, comme maintenant j'ai cette question dans la tête...
    C'est vrai, quoi, vous posez un tas de questions et après, nous, comment on fait si on sait pas
    A+

  3. #3
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    ben si tu dis que tu te poses la question, que tu réfléchis
    imagine pour moi

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour masquer une combo vide, donc, tu peux vérifier la présence de données dans la colonne, de la ligne 2 à la dernière ligne. Dès qu'est trouvée une donnée -> sorie du test.
    Pour ça tu modifies InitCombo(...) en ajoutant la ligne bleue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub InitCombo(NoLigne, NoColonne)
    Dim NomCombo As String
    Dim Plage As String
    Sheets("Bd").Activate
        Plage = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)).Address
        Call TesterPlageVide(NoLigne, NoColonne
        NomCombo = "cbox" & NoColonne
        With ATESTER.Controls(NomCombo)
            .Value = Cells(1, NoColonne)
            .RowSource = Plage
        End With
    End Sub
    ... et tu ajoutes la macro qui va bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub TesterPlageVide(NoLigne, NoCol)
    Dim C1 As Range, LaCell As Range
    Dim Ok As Boolean
        Set C1 = Range(Cells(2, NoCol), Cells(NoLigne, NoCol))
        For Each LaCell In C1
                Ok = LaCell <> ""
                If Ok Then Exit For
        Next
        ATESTER.Controls("cbox" & NoCol).Visible = Ok
    End Sub
    Si jamais tu avais dans ton esprit pervers l'idée d'afficher tous tes combox quand tu veux, j'ai la solution mais là, je te laisserai chercher
    A+

  5. #5
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir,
    j'ai recopié ton code mais aucune réaction

    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
    Sub InitCombo(NoLigne, NoColonne)
    Dim NomCombo As String
    Dim Plage As String
    Sheets("Bd").Activate
        Plage = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne)).Address
         Call TesterPlageVide(NoLigne, NoColonne)
        NomCombo = "cbox" & NoColonne
        With ATESTER.Controls(NomCombo)
            .Value = Cells(1, NoColonne)
            .RowSource = Plage
        End With
    End Sub
     
     
     
    Sub TesterPlageVide(NoLigne, NoColonne)
    Dim C1 As Range, LaCell As Range
    Dim Ok As Boolean
        Set C1 = Range(Cells(2, NoColonne), Cells(NoLigne, NoColonne))
        For Each LaCell In C1
                Ok = LaCell <> ""
                If Ok Then Exit For
        Next
        ATESTER.Controls("cbox" & NoColonne).Visible = Ok
    End Sub
    merci a+

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as vidé une colonne de la seconde ligne à la dernière ?
    Tu as ajouter ) à la fin de ma ligne rouge ?

  7. #7
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    h non j'avais pas fait ca, ca ok ca marche pas de pb mais dans mon cas lorsque le materiel est sorti est bien j'ai 3 combos qui ne sont pas remplis mais des que le matos rentré ben tout est rempli

    donc il faudrait qu'elles réapparaissent des qu'elles ne sont plus vides et elur label aussi

    merci a+

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

Discussions similaires

  1. Masquer une liste si elle est vide
    Par felix79 dans le forum Jasper
    Réponses: 1
    Dernier message: 06/12/2011, 14h45
  2. Réponses: 1
    Dernier message: 17/08/2011, 17h35
  3. Masquer une feuille lorsqu'elle perd le focus
    Par bichonviou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/11/2007, 15h31
  4. Réponses: 2
    Dernier message: 10/05/2007, 22h19

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