Enlever des valeurs d’un combobox.

Le
StDonat
Bonjour, J’ai un combobox avec un certain nombre de valeurs(supposons une
liste de prénoms). Je souhaiterais pouvoir retirer de cette liste « Georges »
ou « Philippe ». Rassurez-vous je n’ai rien contre ces 2 prénoms là, c’est
juste pour l’exemple !!
Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #18130251
Bonjour,

c'est selon comment tu obtiens sa source

rowsource, array, boucle... ??
faut repasser la moulinette en filtrant avec if ou select case par
exemple, ou modifier la source...

(..aussi userform ou feuille?)

Cordialement.

--
lSteph

StDonat a écrit :
Bonjour, J’ai un combobox avec un certain nombre de valeurs(supposons une
liste de prénoms). Je souhaiterais pouvoir retirer de cette liste « Georges »
ou « Philippe ». Rassurez-vous je n’ai rien contre ces 2 prénoms là, c’est
juste pour l’exemple !!
Merci de votre aide.



LE TROLL
Le #18130181
Salut, voici chef :

dim lindex as long
combo1.RemoveItem lindex

Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais tu peux
écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré comme
le 1er positif...

Lais arthung, si tu en enlève plusieurs, par cette méthode ça plante car
en en ôtant un, tu changes les index supérieur à celui enlevé, si tu me
suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il faille
faire un Combi1.Refresh, et que tu récupère de nouveau l'index souvent,
alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
remontant, ainsi, tout ce que tu supprime est changé derrière ton pointeur,
tu t'en moques, voici un exemple complet, ça fera 2 ? :

dim lindex as long
dim i as long
dim lesNoms as string(2)
lesNoms(0) = "georges"
lesNoms(1) = "Philippe"
for i = combo1.listcount-1 to 0 step -1
for j = 0 to 1
if leNom(j) = combo1.text then
lindex = combo1.listindex
combo1.removeitem lindex
endif
next j
next i
combo1.refresh
if combo1.listcount = >0 then combo1.listindex = ' ' ' ta position
d'affichage

est-ce clair ???
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| Bonjour, J'ai un combobox avec un certain nombre de valeurs(supposons une
| liste de prénoms). Je souhaiterais pouvoir retirer de cette liste «
Georges »
| ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms là, c'est
| juste pour l'exemple !!
| Merci de votre aide.
|
StDonat
Le #18130171
Merci pour le début de réponse.
Il s'agit d'un cbx dans un userform et je lui affecte la sourcepar:
Combobox.list=SansDoublonsTrié(F1.Range(ou & "3:" & ou &
F1.Range("B65536").End(xlUp).Row))
donc par array....

"LSteph" wrote:

Bonjour,

c'est selon comment tu obtiens sa source

rowsource, array, boucle... ??
faut repasser la moulinette en filtrant avec if ou select case par
exemple, ou modifier la source...

(..aussi userform ou feuille?)

Cordialement.

--
lSteph

StDonat a écrit :
> Bonjour, J’ai un combobox avec un certain nombre de valeurs(supposons une
> liste de prénoms). Je souhaiterais pouvoir retirer de cette liste « Georges »
> ou « Philippe ». Rassurez-vous je n’ai rien contre ces 2 prénoms là, c’est
> juste pour l’exemple !!
> Merci de votre aide.
>



StDonat
Le #18130321
Merci, j'essaye mais il va me falloir du temps!!

"LE TROLL" wrote:

Salut, voici chef :

dim lindex as long
combo1.RemoveItem lindex

Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais tu peux
écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré comme
le 1er positif...

Lais arthung, si tu en enlève plusieurs, par cette méthode ça plante car
en en ôtant un, tu changes les index supérieur à celui enlevé, si tu me
suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il faille
faire un Combi1.Refresh, et que tu récupère de nouveau l'index souvent,
alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
remontant, ainsi, tout ce que tu supprime est changé derrière ton pointeur,
tu t'en moques, voici un exemple complet, ça fera 2 ? :

dim lindex as long
dim i as long
dim lesNoms as string(2)
lesNoms(0) = "georges"
lesNoms(1) = "Philippe"
for i = combo1.listcount-1 to 0 step -1
for j = 0 to 1
if leNom(j) = combo1.text then
lindex = combo1.listindex
combo1.removeitem lindex
endif
next j
next i
combo1.refresh
if combo1.listcount = >0 then combo1.listindex = ' ' ' ta position
d'affichage

est-ce clair ???
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| Bonjour, J'ai un combobox avec un certain nombre de valeurs(supposons une
| liste de prénoms). Je souhaiterais pouvoir retirer de cette liste «
Georges »
| ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms là, c'est
| juste pour l'exemple !!
| Merci de votre aide.
|





LSteph
Le #18130481
bonjour,

(comme je ne sais quelle recette a cuisiné "SansDoublos" et "ou")

voici un exemple plus standard partant d'un array et rebouclant dessus
pour filtrer

Private Sub UserForm_Initialize()
Dim myArr(), i as long
myArr = Array("toto", "Georges", "titi", "Philippe", "Mgr")
ComboBox1.Clear
For i = 0 To UBound(myArr)
Select Case LCase(myArr(i))
Case "georges", "philippe"
Case Else
ComboBox1.AddItem myArr(i)
End Select
Next
End Sub

'lSteph

StDonat a écrit :
Merci pour le début de réponse.
Il s'agit d'un cbx dans un userform et je lui affecte la sourcepar:
Combobox.list=SansDoublonsTrié(F1.Range(ou & "3:" & ou &
F1.Range("B65536").End(xlUp).Row))
donc par array....

"LSteph" wrote:

Bonjour,

c'est selon comment tu obtiens sa source

rowsource, array, boucle... ??
faut repasser la moulinette en filtrant avec if ou select case par
exemple, ou modifier la source...

(..aussi userform ou feuille?)

Cordialement.

--
lSteph

StDonat a écrit :
Bonjour, J’ai un combobox avec un certain nombre de valeurs(supposons une
liste de prénoms). Je souhaiterais pouvoir retirer de cette liste « Georges »
ou « Philippe ». Rassurez-vous je n’ai rien contre ces 2 prénoms là, c’est
juste pour l’exemple !!
Merci de votre aide.







StDonat
Le #18130751
il y a 2 trucs que je ne pige pas!
A Quoi sert la boucle I ?
Conbo1.Text a toujours la meme valeur


"LE TROLL" wrote:

Salut, voici chef :

dim lindex as long
combo1.RemoveItem lindex

Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais tu peux
écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré comme
le 1er positif...

Lais arthung, si tu en enlève plusieurs, par cette méthode ça plante car
en en ôtant un, tu changes les index supérieur à celui enlevé, si tu me
suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il faille
faire un Combi1.Refresh, et que tu récupère de nouveau l'index souvent,
alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
remontant, ainsi, tout ce que tu supprime est changé derrière ton pointeur,
tu t'en moques, voici un exemple complet, ça fera 2 ? :

dim lindex as long
dim i as long
dim lesNoms as string(2)
lesNoms(0) = "georges"
lesNoms(1) = "Philippe"
for i = combo1.listcount-1 to 0 step -1
for j = 0 to 1
if leNom(j) = combo1.text then
lindex = combo1.listindex
combo1.removeitem lindex
endif
next j
next i
combo1.refresh
if combo1.listcount = >0 then combo1.listindex = ' ' ' ta position
d'affichage

est-ce clair ???
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| Bonjour, J'ai un combobox avec un certain nombre de valeurs(supposons une
| liste de prénoms). Je souhaiterais pouvoir retirer de cette liste «
Georges »
| ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms là, c'est
| juste pour l'exemple !!
| Merci de votre aide.
|





LE TROLL
Le #18131901
Bonjour,

Tu as tout à fait raison, j'ai fait ça de tête à main levée, en effet,
il aut faire évoluer l'indice, merci ;o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| il y a 2 trucs que je ne pige pas!
| A Quoi sert la boucle I ?
| Conbo1.Text a toujours la meme valeur
|
|
| "LE TROLL" wrote:
|
| > Salut, voici chef :
| >
| > dim lindex as long
| > combo1.RemoveItem lindex
| >
| > Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais tu
peux
| > écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré
comme
| > le 1er positif...
| >
| > Lais arthung, si tu en enlève plusieurs, par cette méthode ça plante
car
| > en en ôtant un, tu changes les index supérieur à celui enlevé, si tu me
| > suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il faille
| > faire un Combi1.Refresh, et que tu récupère de nouveau l'index souvent,
| > alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
| > remontant, ainsi, tout ce que tu supprime est changé derrière ton
pointeur,
| > tu t'en moques, voici un exemple complet, ça fera 2 ? :
| >
| > dim lindex as long
| > dim i as long
| > dim lesNoms as string(2)
| > lesNoms(0) = "georges"
| > lesNoms(1) = "Philippe"
| > for i = combo1.listcount-1 to 0 step -1
| > for j = 0 to 1
| > if leNom(j) = combo1.text then
| > lindex = combo1.listindex
| > combo1.removeitem lindex
| > endif
| > next j
| > next i
| > combo1.refresh
| > if combo1.listcount = >0 then combo1.listindex = ' ' ' ta position
| > d'affichage
| >
| > est-ce clair ???
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "StDonat" | > news:
| > | Bonjour, J'ai un combobox avec un certain nombre de valeurs(supposons
une
| > | liste de prénoms). Je souhaiterais pouvoir retirer de cette liste «
| > Georges »
| > | ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms là,
c'est
| > | juste pour l'exemple !!
| > | Merci de votre aide.
| > |
| >
| >
| >
StDonat
Le #18134341
Merci, mais tu etre un peu plus précis, sur :
Faire evoluer l'indice ?
Ta solution me semble bonne , mais je ne comprends pas pourquoi elle ne
fonctionne pas ?

"LE TROLL" wrote:

Bonjour,

Tu as tout à fait raison, j'ai fait ça de tête à main levée, en effet,
il aut faire évoluer l'indice, merci ;o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| il y a 2 trucs que je ne pige pas!
| A Quoi sert la boucle I ?
| Conbo1.Text a toujours la meme valeur
|
|
| "LE TROLL" wrote:
|
| > Salut, voici chef :
| >
| > dim lindex as long
| > combo1.RemoveItem lindex
| >
| > Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais tu
peux
| > écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré
comme
| > le 1er positif...
| >
| > Lais arthung, si tu en enlève plusieurs, par cette méthode ça plante
car
| > en en ôtant un, tu changes les index supérieur à celui enlevé, si tu me
| > suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il faille
| > faire un Combi1.Refresh, et que tu récupère de nouveau l'index souvent,
| > alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
| > remontant, ainsi, tout ce que tu supprime est changé derrière ton
pointeur,
| > tu t'en moques, voici un exemple complet, ça fera 2 ? :
| >
| > dim lindex as long
| > dim i as long
| > dim lesNoms as string(2)
| > lesNoms(0) = "georges"
| > lesNoms(1) = "Philippe"
| > for i = combo1.listcount-1 to 0 step -1
| > for j = 0 to 1
| > if leNom(j) = combo1.text then
| > lindex = combo1.listindex
| > combo1.removeitem lindex
| > endif
| > next j
| > next i
| > combo1.refresh
| > if combo1.listcount = >0 then combo1.listindex = ' ' ' ta position
| > d'affichage
| >
| > est-ce clair ???
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "StDonat" | > news:
| > | Bonjour, J'ai un combobox avec un certain nombre de valeurs(supposons
une
| > | liste de prénoms). Je souhaiterais pouvoir retirer de cette liste «
| > Georges »
| > | ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms là,
c'est
| > | juste pour l'exemple !!
| > | Merci de votre aide.
| > |
| >
| >
| >





StDonat
Le #18135181
Merci mais ce que je cherche c'est d'enlever des valeurs, avec removeitem il
me semble, et je ne vois rien de cela dans ta solution ?

"LSteph" wrote:

bonjour,

(comme je ne sais quelle recette a cuisiné "SansDoublos" et "ou")

voici un exemple plus standard partant d'un array et rebouclant dessus
pour filtrer

Private Sub UserForm_Initialize()
Dim myArr(), i as long
myArr = Array("toto", "Georges", "titi", "Philippe", "Mgr")
ComboBox1.Clear
For i = 0 To UBound(myArr)
Select Case LCase(myArr(i))
Case "georges", "philippe"
Case Else
ComboBox1.AddItem myArr(i)
End Select
Next
End Sub

'lSteph

StDonat a écrit :
> Merci pour le début de réponse.
> Il s'agit d'un cbx dans un userform et je lui affecte la sourcepar:
> Combobox.list=SansDoublonsTrié(F1.Range(ou & "3:" & ou &
> F1.Range("B65536").End(xlUp).Row))
> donc par array....
>
> "LSteph" wrote:
>
>> Bonjour,
>>
>> c'est selon comment tu obtiens sa source
>>
>> rowsource, array, boucle... ??
>> faut repasser la moulinette en filtrant avec if ou select case par
>> exemple, ou modifier la source...
>>
>> (..aussi userform ou feuille?)
>>
>> Cordialement.
>>
>> --
>> lSteph
>>
>> StDonat a écrit :
>>> Bonjour, J’ai un combobox avec un certain nombre de valeurs(supposons une
>>> liste de prénoms). Je souhaiterais pouvoir retirer de cette liste « Georges »
>>> ou « Philippe ». Rassurez-vous je n’ai rien contre ces 2 prénoms là, c’est
>>> juste pour l’exemple !!
>>> Merci de votre aide.
>>>



LE TROLL
Le #18135291
Je te fais ça en VB pour le tester, désolé, c'était juste un schéma de
principe...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" news:
| Merci, mais tu etre un peu plus précis, sur :
| Faire evoluer l'indice ?
| Ta solution me semble bonne , mais je ne comprends pas pourquoi elle ne
| fonctionne pas ?
|
| "LE TROLL" wrote:
|
| > Bonjour,
| >
| > Tu as tout à fait raison, j'ai fait ça de tête à main levée, en
effet,
| > il aut faire évoluer l'indice, merci ;o)
| >
| > --
| > Merci beaucoup, au revoir et à bientôt :o)
| > ------
| > Romans, logiciels, email, site personnel
| > http://irolog.free.fr/joe.htm
|
> ------------------------------------------------------------------------------------
| > "StDonat" | > news:
| > | il y a 2 trucs que je ne pige pas!
| > | A Quoi sert la boucle I ?
| > | Conbo1.Text a toujours la meme valeur
| > |
| > |
| > | "LE TROLL" wrote:
| > |
| > | > Salut, voici chef :
| > | >
| > | > dim lindex as long
| > | > combo1.RemoveItem lindex
| > | >
| > | > Si "dupont" est à l'index 10, ben tu files = lindex = 10, mais
tu
| > peux
| > | > écrire en dur (à éviter), ne pas oublier que ça part de 0, considéré
| > comme
| > | > le 1er positif...
| > | >
| > | > Lais arthung, si tu en enlève plusieurs, par cette méthode ça
plante
| > car
| > | > en en ôtant un, tu changes les index supérieur à celui enlevé, si tu
me
| > | > suis, tu les réduis d'un dans ce cas, alors ça impliquerait qu'il
faille
| > | > faire un Combi1.Refresh, et que tu récupère de nouveau l'index
souvent,
| > | > alors, pour ne pas avoir se désagrément, il faut partir d'en bas, en
| > | > remontant, ainsi, tout ce que tu supprime est changé derrière ton
| > pointeur,
| > | > tu t'en moques, voici un exemple complet, ça fera 2 ? :
| > | >
| > | > dim lindex as long
| > | > dim i as long
| > | > dim lesNoms as string(2)
| > | > lesNoms(0) = "georges"
| > | > lesNoms(1) = "Philippe"
| > | > for i = combo1.listcount-1 to 0 step -1
| > | > for j = 0 to 1
| > | > if leNom(j) = combo1.text then
| > | > lindex = combo1.listindex
| > | > combo1.removeitem lindex
| > | > endif
| > | > next j
| > | > next i
| > | > combo1.refresh
| > | > if combo1.listcount = >0 then combo1.listindex = ' ' ' ta
position
| > | > d'affichage
| > | >
| > | > est-ce clair ???
| > | > --
| > | > Merci beaucoup, au revoir et à bientôt :o)
| > | > ------
| > | > Romans, logiciels, email, site personnel
| > | > http://irolog.free.fr/joe.htm
| > |
| >
> ------------------------------------------------------------------------------------
| > | > "StDonat" message de
| > | > news:
| > | > | Bonjour, J'ai un combobox avec un certain nombre de
valeurs(supposons
| > une
| > | > | liste de prénoms). Je souhaiterais pouvoir retirer de cette liste
«
| > | > Georges »
| > | > | ou « Philippe ». Rassurez-vous je n'ai rien contre ces 2 prénoms
là,
| > c'est
| > | > | juste pour l'exemple !!
| > | > | Merci de votre aide.
| > | > |
| > | >
| > | >
| > | >
| >
| >
| >
Publicité
Poster une réponse
Anonyme