' exp chage combo form1
Option Explicit
Sub Form_Load()
Combo1.Clear
Combo1.AddItem "un"
Combo1.AddItem "deux"
Combo1.AddItem "georges"
Combo1.AddItem "trois"
Combo1.AddItem "philippe"
Combo1.AddItem "quatre"
Combo1.ListIndex = 0
End Sub
Sub Command1_Click() ' supprime
Dim supprime(2) As String
Dim i As Long
Dim j As Long
If Combo1.ListCount < 1 Then Exit Sub
supprime(0) = "georges"
supprime(1) = "philippe"
For i = Combo1.ListCount - 1 To 0 Step -1
For j = 0 To 1
If supprime(j) = Combo1.List(i) Then Combo1.RemoveItem i
Next j
Next i
Combo1.Refresh
If Combo1.ListCount > 0 Then Combo1.ListIndex = 0
End Sub
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" a écrit dans le message de
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" a écrit dans le message de
| > 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" a écrit dans le
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.
| > | > |
| > | >
| > | >
| > | >
| >
| >
| >
' exp chage combo form1
Option Explicit
Sub Form_Load()
Combo1.Clear
Combo1.AddItem "un"
Combo1.AddItem "deux"
Combo1.AddItem "georges"
Combo1.AddItem "trois"
Combo1.AddItem "philippe"
Combo1.AddItem "quatre"
Combo1.ListIndex = 0
End Sub
Sub Command1_Click() ' supprime
Dim supprime(2) As String
Dim i As Long
Dim j As Long
If Combo1.ListCount < 1 Then Exit Sub
supprime(0) = "georges"
supprime(1) = "philippe"
For i = Combo1.ListCount - 1 To 0 Step -1
For j = 0 To 1
If supprime(j) = Combo1.List(i) Then Combo1.RemoveItem i
Next j
Next i
Combo1.Refresh
If Combo1.ListCount > 0 Then Combo1.ListIndex = 0
End Sub
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" <StDonat@discussions.microsoft.com> a écrit dans le message de
news: F0BE8276-87DC-4C13-BCB8-A5559F52F675@microsoft.com...
| 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" <StDonat@discussions.microsoft.com> a écrit dans le message de
| > news: 540EDB3F-4194-4FBC-A49F-10904411B247@microsoft.com...
| > | 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" <StDonat@discussions.microsoft.com> a écrit dans le
message de
| > | > news: 5C02C340-F574-4E15-95F5-F87BB4870BB1@microsoft.com...
| > | > | 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.
| > | > |
| > | >
| > | >
| > | >
| >
| >
| >
' exp chage combo form1
Option Explicit
Sub Form_Load()
Combo1.Clear
Combo1.AddItem "un"
Combo1.AddItem "deux"
Combo1.AddItem "georges"
Combo1.AddItem "trois"
Combo1.AddItem "philippe"
Combo1.AddItem "quatre"
Combo1.ListIndex = 0
End Sub
Sub Command1_Click() ' supprime
Dim supprime(2) As String
Dim i As Long
Dim j As Long
If Combo1.ListCount < 1 Then Exit Sub
supprime(0) = "georges"
supprime(1) = "philippe"
For i = Combo1.ListCount - 1 To 0 Step -1
For j = 0 To 1
If supprime(j) = Combo1.List(i) Then Combo1.RemoveItem i
Next j
Next i
Combo1.Refresh
If Combo1.ListCount > 0 Then Combo1.ListIndex = 0
End Sub
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"StDonat" a écrit dans le message de
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" a écrit dans le message de
| > 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" a écrit dans le
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.
| > | > |
| > | >
| > | >
| > | >
| >
| >
| >
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.
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.
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.