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 :

nombre d'indice dans une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien Méthode
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Méthode
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Par défaut nombre d'indice dans une liste déroulante
    Bonjour
    une solution entraine un autre probleme
    http://www.developpez.net/forums/d14...e/#post8072209

    sur ce sujet on a répondu a mon probleme mais maintenant j'ai un autre probleme. j'aimerais avec un code vba qu'il me renvoie le nombre "d'indice" ou "membre de collection" dans une liste déroulante.
    J'ai le code exacte ce coup si le voila
    Code vba : 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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
     If IsNumeric(TextBox_nb_ruban.Value) Then
            nb_ruban = TextBox_nb_ruban.Value
            If nb_ruban < 16 Then
                Dim TextBox_ruban_(1 To 15)
                Dim Label_ruban_(1 To 15)
                Dim derniere_ligne As Integer
     
                Workbooks.Open Filename:= _
                lien_tableau_base, ReadOnly:=True
     
                derniere_ligne = Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("C1").End(xlDown).Row
                k = 0
                    For i = 1 To nb_ruban
                         k = k + 1
     
                         Controls("TextBox_ruban_" & i).Visible = True
                         Controls("TextBox_ruban_" & i).Top = debut
                         Controls("TextBox_ruban_" & i).Left = 78
                         Controls("TextBox_ruban_" & i).Width = 114
                         Controls("TextBox_ruban_" & i).Height = 18
                         Controls("TextBox_ruban_" & i).Font.Size = 8
     
                            For j = 1 To derniere_ligne - 1
                                If Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("A" & j + 1) = programme Then
                                    If Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("C" & j + 1) = reference Then
                                        If Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("D" & j + 1) = Indice Then
                                            If Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("I" & j + 1) = machine Then
                                                MsgBox Split(Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("M" & j + 1).Value)
                                                    Controls("TextBox_ruban_" & k).Value = Split(Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("M" & j + 1).Validation.Formula1, ";")(k - 1) 'voila le code qui pose probleme
                                            End If
                                        End If
                                    End If
                                End If
                            Next
     
                         Controls("Label_ruban_" & i).Visible = True
                         Controls("Label_ruban_" & i).Top = Start
                         Controls("Label_ruban_" & i).Left = 6
                         Controls("Label_ruban_" & i).Width = 70
                         Controls("Label_ruban_" & i).Height = 12
                         Controls("Label_ruban_" & i).Caption = "Ruban n°" & i
     
                         UserForm2_inserer_ruban.Height = UserForm2_inserer_ruban.Height + 18
                         CommandButton_retour.Top = CommandButton_retour.Top + 18
                         CommandButton_ajouter.Top = CommandButton_ajouter.Top + 18
                         debut = debut + 18
                         Start = Start + 18
     
                   Next
     
                Workbooks("UPR - Tableau base.xlsx").Close SaveChanges:=False
            Else
                MsgBox "Maximum 15 ruban"
            End If
        Else
            MsgBox "entré un nombre ! "
        End If
    End Sub

    ce code me permet de chercher dans un tableau celon des criteres la case chercher et vouloir remplir les textbox par des value par d'efaut qui sont dans une liste déroulante
    Le probleme avec mon code c'est "la limite des liste déroulante" car si le nb_ruban est supérieur a se que contien la liste deroulante ou son entré les valeur par défaut il m'affiche une erreur.
    exemple: j'ai une liste déroulante avec 4 indice a l'intérieur.

    Si nb_ruban <=4 j'ai pas de probleme le code execute se que je veux.

    Mais si nb_ruban >4 il ne peux pas me chercher de valeur dans la liste déroulante car la liste contient que 4 valeur ... mais les liste déroulante peuvent avoir beaucoup de valeur ou 1 seul valeur ...
    Donc j'aimerais avant sa que vba reconnaisse le nombre d'indice dans la liste déroualnte.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    j'aimerais avec un code vba qu'il me renvoie le nombre "d'indice" ou "membre de collection" dans une liste déroulante.
    S'il s"agit de connaître le nombre d'éléments d'un contrôle ListBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Me.ListBox1.ListCount
    S'il s'agit de connaître le nombre d'éléments d'une collection, utilise la propriété Count

    Le probleme avec mon code c'est "la limite des liste déroulante" car si le nb_ruban est supérieur a se que contien la liste deroulante ou son entré les valeur par défaut il m'affiche une erreur.
    exemple: j'ai une liste déroulante avec 4 indice a l'intérieur.
    J'avoue éprouver beaucoup de difficultés à décoder ta question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien Méthode
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Méthode
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Par défaut
    en réalité j'aimerais juste connaitre le nombre d'element dans une liste déroulante sur excel. j'ai essayer count sa marché pas ... peut etre mal utiliser je vais voir sa lundi au taf.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    en réalité j'aimerais juste connaitre le nombre d'element dans une liste déroulante sur excel.
    Qu'entends-tu par une liste déroulante sur Excel ?
    Une liste avec l'outil Validation de données, un contrôle ActiveX, un contrôle ListBox ou ComboBox d'un UserForm ?
    Dans ce dernier cas, je t'ai donné la réponse dans ma première intervention.

    Plus tu seras précis dans ta demande, plus tu auras de chance d'avoir une réponse précise évitant ainsi de multiplier inutilement le nombre de post dans ce fil.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Technicien Méthode
    Inscrit en
    Novembre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Technicien Méthode
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 6
    Par défaut
    Philippe Tulliez
    Je te demande pas ta présence si tu as envie de multiplier les questions inutil....


    Dans le code il y a "Validation.formula:=" dans le code qui pose problème donc c'est une validation de donné ...
    Si en plus tu allais sur le liens que j'ai mis pour te mettre mieux dans le bain sa ira mieux aussi ...

    Donc je le dis pour que tu le sache oui c'est une validation de donné ! d'ou j'aimerais connaitre le nombre d'indice ou de collection présent dans cette liste !

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je te demande pas ta présence si tu as envie de multiplier les questions inutil....
    Les personnes qui répondent sur ce forum sont bénévoles et s'efforcent de venir en aide à d'autres et n'ont pas toujours l'occasion de lire des dizaines de lignes de codes parfois indigestes.
    Si tu avais tout de suite indiqué que la ligne qui posait problème était la ligne 30 cela m'aurait évité de te poser ce genre de question parce-que comme tu as placé le commentaire à la fin de cette ligne, celle-ci étant masquée dans la fenêtre de code, il était difficile de le voir.
    Tu n'indiques pas non plus le message d'erreur que tu obtiens
    Dans cette ligne de code (ligne 30)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Controls("TextBox_ruban_" & k).Value = Split(Workbooks("UPR - Tableau base.xlsx").Sheets("Base").Range("M" & j + 1).Validation.Formula1, ";")(k - 1) 'voila le code qui pose probleme
    Comme tu utilises la fonction Split sur cette ligne cela signifie que tu crées un tableau dont on connaît la taille par la fonction Ubound
    Cependant, je n'ai jamais créé une liste dans un contrôle TextBox et j'ignorais même que cela soit possible ce dont je doute d'ailleurs) mais comme tu ne précises pas non plus le type de contrôle que tu utilises il est aussi difficile de t'aider de ce côté là.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    maotao, cela irai bien mieux avec une attention particulière portée à ton orthographe,
    ce serait alors bien plus agréable de te lire !

    Sinon si une question est posée, elle a l'utilité de te demander de combler ta présentation initiale incomplète !
    Si on doit perdre du temps à décoder un code, on zappe et on passe à la discussion suivante !

    Comme indiqué dans les règles de ce forum (commencer donc par les lire !),
    une présentation claire et exhaustive est le minimum pour obtenir satisfaction, à bon entendeur …

    _________________________________________________________________________________________________
    Question bien formulée, solution assurée ! (Robert Durupt)

Discussions similaires

  1. Récupérer l'indice d'une valeur choisie dans une liste déroulante
    Par winflow dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/01/2014, 13h15
  2. [XL-MAC 2011] Condition sur le nombre d'items contenus dans une liste déroulante
    Par xixil dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2013, 19h55
  3. [XL-2007] Nombre de lignes dans une liste déroulante
    Par divan dans le forum Conception
    Réponses: 3
    Dernier message: 20/11/2010, 11h32
  4. Réponses: 11
    Dernier message: 26/10/2009, 13h03
  5. [HTML 4.0] Limiter le nombre d'élements visibles dans une liste déroulante
    Par m.zouabi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/09/2009, 10h34

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