Combobox de taille adaptable [Résolu]

aker01600 11 Messages postés mercredi 22 novembre 2006Date d'inscription 25 juillet 2008 Dernière intervention - 15 juil. 2008 à 10:49 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 7 août 2013 à 21:00
bonjour a tous, je vous ecris car j'ai un probleme, je debute en ce moment en vba.

je devellope actuellement un formulaire en excel afin de faire l'inventaire d'un parc informatique.
le form marche a merveille, mais la ou j'ai un petit probleme et je dit bien petit c'est au niveau de la combobox qui contient une liste de localisation.s
cette combobox est alimentée par les champs d'une feuille excel avec le code suivant :
ComboBox1.RowSource = ("localisation!liste1")

cela marche, le probleme c'est que je voudrait que cette liste soit de taille variable afin que cette solution soit adaptable a plusieurs sites

merci d'avance de vos reponses
Afficher la suite 

11 réponses

Répondre au sujet
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 16 juil. 2008 à 14:41
+3
Utile
Ok,

alors voici la parade :

Dim DerLigne As Integer, i As Integer

DerLigne = Range("A65536").End(xlUp).Row

For i = 1 To DerLigne
    If Range("A" & i).Value <> vbNullString Then ComboBox1.AddItem
Range("A" & i).Value
Next i
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mortalino
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 17 juil. 2008 à 06:31
+3
Utile
Dim 
DerLigne 
As Integer
, i 
As Integer




DerLigne = Range(
"A65536"
).End(xlUp).Row




For 
i = 

To 
DerLigne

    If

Sheets("localisations").


Range(
"A" 
& i).Value <> vbNullString 
Then 
ComboBox1.AddItem


Sheets("localisations").


Range(
"A" 
& i).Value


Next 
i




@++

le mystérieux chevalier,"Provençal, le gaulois"
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mortalino
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 15 juil. 2008 à 19:23
0
Utile
1
Salut,

taille adaptable en longueur ? (nb d'items)
ou en largeur ?

1/ ComboBox1.ListRows = ComboBox1.ListCount
2/ http://www.codyx.org/snippet_agrandir-largeur-hauteur-items-deroules-combobox_642.aspx

Pour le point 2, faudra adapter le snippet de PCPT afin de trouver d'abord le hWnd du Combobox
@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
aker01600 11 Messages postés mercredi 22 novembre 2006Date d'inscription 25 juillet 2008 Dernière intervention - 15 juil. 2008 à 20:04
0
Utile
"Pour le point 2, faudra adapter le snippet de PCPT afin de trouver d'abord le hWnd du Combobox"

c'est quelle langue ca ???

en fait c'est adaptable sur le nombre d'items

j'essaierai ta solution demain au boulot, merci
Commenter la réponse de aker01600
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 15 juil. 2008 à 20:18
0
Utile
En fait son snippet est en VB6, et en VBA, seule l'application Excel elle même possède un hWnd (handle Windows), pas les contrôles.
Mais vu que ça à l'air de concerner le nombre d'Items, ma soluce devrait suffir

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
aker01600 11 Messages postés mercredi 22 novembre 2006Date d'inscription 25 juillet 2008 Dernière intervention - 16 juil. 2008 à 08:14
0
Utile
c'est pas mal ta solution sauf que j'ai associe la combobox avec une colonne d'une feuille et ce que je voudrait c'est supprimer les champs non remplis de la colonne de la combobox afin que quand tu rajoute un champ cela le rajoute dans la combobox mais on ne voit pas les champ vides

http://img141.imageshack.us/img141/8812/screenhq0.jpg
Commenter la réponse de aker01600
aker01600 11 Messages postés mercredi 22 novembre 2006Date d'inscription 25 juillet 2008 Dernière intervention - 16 juil. 2008 à 16:26
0
Utile
merci, cela fonctionne mais, seulement quand la feuille qui contient la liste est en "ActiveSheet", tu n'aurais pas une solutions pour que cela marche meme quand elle est pas en ActiveSheet, j'ai essayer avec la commande mais cela n'a pas l'air de marcher :

Dim sheet As Excel.Worksheet
Set sheet = ThisWorkbook.Sheets("localisations")

encore merci de ton aide
Commenter la réponse de aker01600
aker01600 11 Messages postés mercredi 22 novembre 2006Date d'inscription 25 juillet 2008 Dernière intervention - 17 juil. 2008 à 08:14
0
Utile
c'est bon tout marche a merveille, merci beaucoup
Commenter la réponse de aker01600
cs_MPi 3863 Messages postés mardi 19 mars 2002Date d'inscription 13 mars 2018 Dernière intervention - 7 août 2013 à 18:02
0
Utile
1
Bonjour,

Qu'est-ce que tu entends par taille variable ?
La largeur ? ou le nombre de lignes ?
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 7 août 2013 à 21:00
Bonjour
après 5 ans .......
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.