Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2007, 09h43   #1
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
Par défaut Suppression des blancs dans une ComboBox

Bonjour,

J'ai une Combobox qui se réfère à une colonne qui n'est pas entièrement remplie.

Je souhaiterais supprimer les blancs dans cette ComboBox afin d'afficher une liste sans vides entre les sélections.

Merci de votre aide
sami35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 11h31   #2
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2007
Messages : 38
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 38
Points : 26
Points : 26
Envoyer un message via MSN à Corlo
Utilise une boucle for

Code :
1
2
3
4
5
For i=0 to FinDeTaColonne
if feuil.range("X").text <> "" then
Combobox.AddItem(Feuil.range("X").Text
endif
next i
Corlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 12h16   #3
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
Lorsque j'incorpore la boucle for dans mon programme, j'ai une erreur de compilation au niveau du ".Range"

Code :
1
2
3
4
5
6
7
8
9
10
11
12
For Each ch_agce In Me.Controls
        If Left(ch_agce.Name, 12) = "Choix_agence" Then
            ch_agce.RowSource = "Agences!E2:E1200"
 
            For i = 2 To 1200
            If Agences.Range("E" & i).Text <> "" Then
            ComboBox.AddItem (Agences.Range("E" & i).Text)
            End If
            Next i
 
        End If
    Next
Je n'arrive pas à comprendre mon erreur
sami35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h27   #4
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2007
Messages : 38
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 38
Points : 26
Points : 26
Envoyer un message via MSN à Corlo
Sur le code que tu as mis, je ne vois pas d'erreur.
Agences est bien une feuille Excel?
C'est quoi l'erreur qui est mis ?
Corlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h34   #5
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
"Agences" est bien une feuille de mon fichier Excel.

Dans cette feuille, je récupère la colonne E de la ligne 2 à la ligne 1200 que je mets dans la ComboBox. Certaines lignes de cette colonne sont vides et apparaissent dans la sélection de la ComboBox.
Mon objectif est d'enlever ces sélections vides.

L'erreur indiquée est:
"Membre de méthode ou de données introuvable"
sami35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 14h58   #6
Nouveau Membre du Club
 
Étudiant
Inscription : avril 2007
Messages : 38
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 38
Points : 26
Points : 26
Envoyer un message via MSN à Corlo
J'ai fais un petit test et moi çà marche.
Si tu fais un msgbox de Agences.Range("E" & i).Text, ca te donne quoi ?
Corlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h07   #7
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 1
Points : 1
J'ai enfin réussi.
Je me suis fait un exemple plus simple dans lequel j'ai cherché un petit peu et ensuite j'ai réadapté le bout de programme dans mon code de travail.

Code :
1
2
3
4
5
6
7
8
9
10
11
For Each ch_agce In Me.Controls
        If Left(ch_agce.Name, 12) = "Choix_agence" Then
 
            For i = 2 To 1200
            If Sheets("Agences").Range("E" & i).Text <> "" Then
            ch_agce.AddItem (Sheets("Agences").Range("E" & i).Text)
            End If
            Next i
 
        End If
    Next
Merci Corlo pour le morceaux de code qui m'était bien utile
sami35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h31.


 
 
 
 
Partenaires

Hébergement Web