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 :

Supprimer les vides d'une combobox


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Supprimer les vides d'une combobox
    Bonjour,

    Je suis nouveau sur le site et débutant en VBA.

    Je souhaiterai trouver un code simple pour retirer ou ne pas prendre en compte les vides dans mon combobox.
    Ci-dessous le code que j'ai utilisé pour remplir ma combobox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Initialize()
    ComboBox1.List() = Sheets("Feuil3").Range("B1:B15").Value
    End Sub
    Si quelqu'un peut m'aider.

    Merci.

  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
    12 773
    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 : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si tu entends par les vides le fait que les cellules B1:B15 ne sont pas toutes remplies mais qu'elles se suivent de B1 à Bn
    Tu peux utiliser ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub UserForm_Initialize()
     With Sheets("Feuil3")
      ComboBox1.List() = .Range("B1:B" & .Range("B1").End(xlDown).Row).Value
     End With
    End Sub
    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 Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour cotonna,
    Merci pour ta réponse, je l'ai essaye en la modifiant pour voir si ça changais quelquechose. Cependant ça ne donne pas le résultat escompte. Si tu as d' autres idée je suis a l écouté.

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    Bonjour, j'ai eu le même problème que toi. Je t'invite à regarder le sujet que j'ai posté ICI.

    Enjoy !

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Il te faut faire une boucle sur ta plage et contrôler si la cellule n'est pas vide avant de récupérer sa valeur :
    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
     
    Private Sub UserForm_Initialize()
     
        Dim I As Integer
     
        With Sheets("Feuil3")
     
            For I = 1 To .Range("B" & .Rows.Count).End(xlUp).Row
     
                If .Range("B" & I) <> "" Then
                    ComboBox1.AddItem .Range("B" & I)
                End If
     
            Next I
     
        End With
     
    End Sub
    Hervé.

  6. #6
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    il faut faire une boucle sur les cellues de ta plage B1:B15 et vérifier si la cellule est pleine. Si c'est le cas on remplis la combo avec la méthode additem.
    comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Initialize()
     With Sheets("Feuil3")
      For Each vcel In .Range("B1:B15")
      If vcel <> "" Then Me.ComboBox1.AddItem vcel.Value
      Next vcel
     End With
    End Sub
    EDIT: Bonjour theze désolé pour le doublon
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

Discussions similaires

  1. supprimer les doublons dans une combobox
    Par pierrot67 dans le forum Débuter
    Réponses: 12
    Dernier message: 03/04/2010, 11h05
  2. Réponses: 6
    Dernier message: 11/10/2009, 10h57
  3. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  4. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12
  5. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04

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