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: Erreur d'affichage listbox avec valeur unique


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut VBA: Erreur d'affichage listbox avec valeur unique
    Dans une userForm j'ai créé une listbox pour effectuer des choix.
    J'obtiens une erreur lorsque je l'appelle depuis une procédure alors qu'il ne reste plus qu'un choix dans la liste.
    Voila le code d'initialisation de la userForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub userForm_Initialize()
        Dim TabTemp As Variant
        Nb_Profs = Application.CountA(Sheets("Profs").Range("N1:N35"))
        TabTemp = Sheets("Profs").Range("N1:N" & Nb_Profs).Value
        ListBoxChoix.ColumnCount = UBound(TabTemp)
        ListBoxChoix.List() = TabTemp
    End Sub
    Tant que Nb_Profs est supérieur ou égal 2, il n'y a aucun souci.
    Merci de vos conseils

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par polenade Voir le message
    J'obtiens une erreur lorsque je l'appelle depuis une procédure alors qu'il ne reste plus qu'un choix dans la liste.
    Donc, quand Ubound(TabTemp) vaut 0.

    Ce qui donne ListBoxChoix.ColumnCount = 0.

    D'ailleurs, pourquoi modifier le nombre de colonnes en fonction du nombre d'éléments?

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu peux contourner ce problème par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub userForm_Initialize()
    Dim Nb_Profs As Byte                            'ou Integer si tu as plus de 255 profs
     
     
    With Worksheets("Profs")
        Nb_Profs = Application.CountA(.Range("N1:N35"))
        If Nb_Profs = 1 Then
            ListBoxChoix.AddItem .Range("N1")
        ElseIf Nb_Profs > 1 Then
            ListBoxChoix.List() = .Range("N1:N" & Nb_Profs).Value
        End If
    End With
    End Sub
    En fait, si tu avais 1 seul élément, TabTemp n'est plus considéré comme tableau par cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TabTemp = .Range("N1").Value
    D'où ton erreur

Discussions similaires

  1. Jointure avec valeur unique
    Par zooffy dans le forum Développement
    Réponses: 6
    Dernier message: 22/09/2008, 17h23
  2. Enum avec valeur unique
    Par Oberown dans le forum Général Dotnet
    Réponses: 14
    Dernier message: 10/01/2008, 16h52
  3. [VBA-E] 2 ListBox avec valeurs "dépendantes l'une de l'autre"
    Par dado91400 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/03/2007, 10h51
  4. [VBA] Erreur sur une requête avec un opérateur
    Par elgringo2007 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2006, 18h12
  5. Réponses: 31
    Dernier message: 28/04/2006, 12h09

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