J'ai un Combobox qui contient x lignes avec 5 colonnes .....
L'utilisateur peut modifier ou insérer une nouvelle ligne, mais je voudrais
poiuvoir, à la fin de l'insertion, retrier le contenu du Combobox ....
Existe-t-il une possibilité autre que de copier les données dans un tableau
provisoire, de trier dans ce tableau et ensuite de recharger le Combobox ??
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
sab
Dan a écrit :
Bonjour .....
J'ai un Combobox qui contient x lignes avec 5 colonnes ..... L'utilisateur peut modifier ou insérer une nouvelle ligne, mais je voudrais poiuvoir, à la fin de l'insertion, retrier le contenu du Combobox ....
Existe-t-il une possibilité autre que de copier les données dans un tableau provisoire, de trier dans ce tableau et ensuite de recharger le Combobox ??
Merci pour votre aide ...
Dan
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont s'accumuler dans la liste et donc dans la combobox!!! J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant c'est un probleme qui doit etre tres connu car recurent avec les combobox!
Dan a écrit :
Bonjour .....
J'ai un Combobox qui contient x lignes avec 5 colonnes .....
L'utilisateur peut modifier ou insérer une nouvelle ligne, mais je voudrais
poiuvoir, à la fin de l'insertion, retrier le contenu du Combobox ....
Existe-t-il une possibilité autre que de copier les données dans un tableau
provisoire, de trier dans ce tableau et ensuite de recharger le Combobox ??
Merci pour votre aide ...
Dan
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution...
Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom?
Appelons ta liste source de ton combobox Maliste et elle est située sur
la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta
combobox:
Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox
If Combobox.Value <> "" Then
'ajoute l'Item à liste sur la page Feuil1
Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value
'tri de la liste
Sheets("Feuil1").Activate
Range("Maliste").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_
OrderCustom:=1, Orientation:=xlTopToBottom
End If
'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la
sortie du formulaire (Unload formulaire)
Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont
s'accumuler dans la liste et donc dans la combobox!!!
J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant
c'est un probleme qui doit etre tres connu car recurent avec les
combobox!
J'ai un Combobox qui contient x lignes avec 5 colonnes ..... L'utilisateur peut modifier ou insérer une nouvelle ligne, mais je voudrais poiuvoir, à la fin de l'insertion, retrier le contenu du Combobox ....
Existe-t-il une possibilité autre que de copier les données dans un tableau provisoire, de trier dans ce tableau et ensuite de recharger le Combobox ??
Merci pour votre aide ...
Dan
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont s'accumuler dans la liste et donc dans la combobox!!! J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant c'est un probleme qui doit etre tres connu car recurent avec les combobox!
Dan
Hello sab,
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour l'utilisateur ... Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ... Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont s'accumuler dans la liste et donc dans la combobox!!! J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant c'est un probleme qui doit etre tres connu car recurent avec les combobox!
Hello sab,
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se
trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour
l'utilisateur ...
Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le
CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ...
Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il
apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet
spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le
CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution...
Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom?
Appelons ta liste source de ton combobox Maliste et elle est située sur
la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta
combobox:
Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox
If Combobox.Value <> "" Then
'ajoute l'Item à liste sur la page Feuil1
Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value
'tri de la liste
Sheets("Feuil1").Activate
Range("Maliste").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_
OrderCustom:=1, Orientation:=xlTopToBottom
End If
'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la
sortie du formulaire (Unload formulaire)
Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont
s'accumuler dans la liste et donc dans la combobox!!!
J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant
c'est un probleme qui doit etre tres connu car recurent avec les
combobox!
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour l'utilisateur ... Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ... Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate
Mais le probleme c'est que cela n'evite pas les doublons...qui vont s'accumuler dans la liste et donc dans la combobox!!! J'ai pose la question ici mais n'ai pas eu de reponse encore ,pourtant c'est un probleme qui doit etre tres connu car recurent avec les combobox!
sab
hello
Alors la je ne peux rien pour toi!!!
Deja qu'avec l'exemple ci dessous je ne fais que rentrer les données du combo dans sa Rowsource et les trier par ordre Alpha mais comme je te l'ai deja dit cela genere des doublons dans la liste Il faudrait quelque chose comme si deja dans la liste du combo ne pas rajouter...mais je n'y arrive pas et personne n'a repondu c'est pourtant un probleme recurent des combobox bon courage!!
Dan a écrit :
Hello sab,
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour l'utilisateur ... Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ... Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate
hello
Alors la je ne peux rien pour toi!!!
Deja qu'avec l'exemple ci dessous je ne fais que rentrer les données du
combo dans sa Rowsource et les trier par ordre Alpha mais comme je te
l'ai deja dit cela genere des doublons dans la liste
Il faudrait quelque chose comme
si deja dans la liste du combo ne pas rajouter...mais je n'y arrive
pas et personne n'a repondu c'est pourtant un probleme recurent des
combobox
bon courage!!
Dan a écrit :
Hello sab,
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se
trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour
l'utilisateur ...
Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le
CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ...
Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il
apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet
spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le
CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution...
Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom?
Appelons ta liste source de ton combobox Maliste et elle est située sur
la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta
combobox:
Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox
If Combobox.Value <> "" Then
'ajoute l'Item à liste sur la page Feuil1
Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value
'tri de la liste
Sheets("Feuil1").Activate
Range("Maliste").Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_
OrderCustom:=1, Orientation:=xlTopToBottom
End If
'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la
sortie du formulaire (Unload formulaire)
Sheets ("Feuilx").Activate
Deja qu'avec l'exemple ci dessous je ne fais que rentrer les données du combo dans sa Rowsource et les trier par ordre Alpha mais comme je te l'ai deja dit cela genere des doublons dans la liste Il faudrait quelque chose comme si deja dans la liste du combo ne pas rajouter...mais je n'y arrive pas et personne n'a repondu c'est pourtant un probleme recurent des combobox bon courage!!
Dan a écrit :
Hello sab,
Merci pour ta réponse, mais je n'utilise pas directement les valeurs qui se trouvent dans l'onglet (car codées) ... Cet onglet est invisible pour l'utilisateur ... Il contient des codes comme 0 ou 1 dans les colonnes, et j'affiche dans le CB le texte Actif ou Inactif par exemple ....
Pour cela, je charge les données de l'ionglet dans MyArray(x,5) ... Et cette array est ensuite chargée dans le CB avec MonCB() = MyArray ....
Le problème est que quand on insère un nouveau paramètre dans le CB, il apparait en fin de liste, non trié ....
Pour l'instanat, je recopie les données modifiées du CB dans un onglet spécial, où je trie et recharge le CB via MonArray ....
Ma question est : existe-t-il une fonction permettant de trier soit dans le CB directement, soit une array (tri sur 2 colonnes !!)
Merci encore ...
Dan
"sab" a écrit :
Je m'y connais pas trop mais pour le tri j'ai peut etre la solution... Je te donne l'exemple pour une liste sur une seule colone:
Ta liste est elle definie par un nom? Appelons ta liste source de ton combobox Maliste et elle est située sur la colonne A de la feuille1 et debute en A2
Ce qui te donne quelque chose comme cela lors de l'intialisation de ta combobox: Combobox.RowSource = "Feuil1!Maliste"
'Pour ajouter l' item éventuellement entré dans le combobox If Combobox.Value <> "" Then 'ajoute l'Item à liste sur la page Feuil1 Range("Feuil1!A2").End(xlDown).Offset(1, 0).Value = Combobox.Value 'tri de la liste Sheets("Feuil1").Activate Range("Maliste").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending,Header:=xlNo,_ OrderCustom:=1, Orientation:=xlTopToBottom End If 'Active la Feuille (feuilx) sur laquellle tu desire te retrouver à la sortie du formulaire (Unload formulaire) Sheets ("Feuilx").Activate