OVH Cloud OVH Cloud

alimentation listbox sur une feuille de calcul

9 réponses
Avatar
Paul
Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmenter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle définition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul

9 réponses

Avatar
Daniel
Bonjour.
Mets dans le code :

Private Sub ComboBox1_BeforeDropOrPaste(ByVal Cancel As
MSForms.ReturnBoolean, _
ByVal Action As MSForms.fmAction, ByVal Data As MSForms.DataObject, _
ByVal X As Single, ByVal Y As Single, ByVal Effect As MSForms.ReturnEffect,
ByVal Shift As Integer)
ComboBox1.ListFillRange = "Plage"
End Sub

Cordialement.
Daniel
"Paul" a écrit dans le message de news:
4518d90a$
Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmenter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle définition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul




Avatar
Pierre Fauconnier
Bonjour

Le problème vient peut-être de ta liste qui "se redéfinit
automatiquement"...

Peux-tu nous dire comment? Decaler?


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Paul" a écrit dans le message de news:
4518d90a$
Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmenter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle définition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul




Avatar
JB
Bonsoir,

Solution1:

ll n'y a pas de déclenchement intempestif de l'événement Change
quand on ajoute un élément à la liste.

http://cjoint.com/?jAvNxeR3Cf

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Application.Transpose([maliste])
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub


Solution2:

Il y a déclenchement intempestif de l'événement Change quand on
ajoute un élément à la liste.

http://cjoint.com/?jAvMRbLqgR

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = "maliste"
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub

Cordialement JB




Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaL iste).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmen ter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle défin ition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul


Avatar
Paul
Bonjour,
Oui, c'est un Décaler(.....)

--
Paul

"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

Le problème vient peut-être de ta liste qui "se redéfinit
automatiquement"...

Peux-tu nous dire comment? Decaler?


--
Pierre Fauconnier () (Skype:
pierre_fauconnier)
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Paul" a écrit dans le message de news:
4518d90a$
Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex.
MaListe).


MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas
augmenter


le nombre des lignes qu'il affiche pour s'adapter à la nouvelle
définition


de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul








Avatar
Paul
Bonjour,

Merci de ta réponse, je regarde ça.

--
Paul

"JB" a écrit dans le message de
news:
Bonsoir,

Solution1:

ll n'y a pas de déclenchement intempestif de l'événement Change
quand on ajoute un élément à la liste.

http://cjoint.com/?jAvNxeR3Cf

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Application.Transpose([maliste])
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub


Solution2:

Il y a déclenchement intempestif de l'événement Change quand on
ajoute un élément à la liste.

http://cjoint.com/?jAvMRbLqgR

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = "maliste"
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub

Cordialement JB




Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmenter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle définition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul


Avatar
Paul
Bonjour,

Ça marche, mais du coup, j'ai deux questions :
- qu'est-ce que cette fonction Transpose effectue ? quelle est sa syntaxe ?
- à quoi sont dus les déclenchements intempestifs de l'événement Change ?
une erreur de programmation d'Excel ?

Merci.

--
Paul

"JB" a écrit dans le message de
news:
Bonsoir,

Solution1:

ll n'y a pas de déclenchement intempestif de l'événement Change
quand on ajoute un élément à la liste.

http://cjoint.com/?jAvNxeR3Cf

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Application.Transpose([maliste])
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub


Solution2:

Il y a déclenchement intempestif de l'événement Change quand on
ajoute un élément à la liste.

http://cjoint.com/?jAvMRbLqgR

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = "maliste"
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub

Cordialement JB




Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. MaListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augmenter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle définition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul


Avatar
Paul
et j'ai encore une question :
comment adapter à un Combobox avec deux colonnes ?
Merci.

--
Paul


"Paul" a écrit dans le message de
news:451a6bb2$
Bonjour,

Ça marche, mais du coup, j'ai deux questions :
- qu'est-ce que cette fonction Transpose effectue ? quelle est sa syntaxe
?

- à quoi sont dus les déclenchements intempestifs de l'événement Change ?
une erreur de programmation d'Excel ?

Merci.

--
Paul

"JB" a écrit dans le message de
news:
Bonsoir,

Solution1:

ll n'y a pas de déclenchement intempestif de l'événement Change
quand on ajoute un élément à la liste.

http://cjoint.com/?jAvNxeR3Cf

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Application.Transpose([maliste])
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub


Solution2:

Il y a déclenchement intempestif de l'événement Change quand on
ajoute un élément à la liste.

http://cjoint.com/?jAvMRbLqgR

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = "maliste"
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub

Cordialement JB




Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex.
MaListe).


MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas
augmenter


le nombre des lignes qu'il affiche pour s'adapter à la nouvelle
définition


de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul






Avatar
JB
-La propriété List attend un tableau (Array). Dans cet exemple, la
fonction Transpose transforme un champ en tableau.
-Je ne comprends pas pourquoi l'événement Change est activé lors
d'une modif du champ source de la liste. Je l'observe.
-Liste avec 2 colonnes

http://cjoint.com/?jBvQhdjMNb

*Avec List (fonctionnement ok):
ColumnCount: 2 colonnes
ColumnWidth:40;40

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List =
Application.Transpose(Application.Transpose([maliste3]))
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change2"
End Sub

*Voir en PJ les versions avec ListFillrange.

JB


Bonjour,

Ça marche, mais du coup, j'ai deux questions :
- qu'est-ce que cette fonction Transpose effectue ? quelle est sa syntaxe ?
- à quoi sont dus les déclenchements intempestifs de l'événement Change ?
une erreur de programmation d'Excel ?

Merci.

--
Paul

"JB" a écrit dans le message de
news:
Bonsoir,

Solution1:

ll n'y a pas de déclenchement intempestif de l'événement Change
quand on ajoute un élément à la liste.

http://cjoint.com/?jAvNxeR3Cf

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List = Application.Transpose([maliste])
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub


Solution2:

Il y a déclenchement intempestif de l'événement Change quand on
ajoute un élément à la liste.

http://cjoint.com/?jAvMRbLqgR

Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = "maliste"
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change"
End Sub

Cordialement JB




Bonjour,

J'ai mis un combobox directement sur une feuille de calcul (pas sur un
formulaire).
Il est alimenté par une liste à laquelle j'ai donné un nom (ex. M aListe).
MaListe se redéfinit automatiquement lorsque j'ajoute des valeurs.
Mais le combobox, lui, semble avoir un problème : il ne veut pas augm enter
le nombre des lignes qu'il affiche pour s'adapter à la nouvelle déf inition
de MaListe (l'ascenseur disparaît).
Y a-t-il une solution (je voudrais si possible éviter de passer par un
userform) ?
Merci de votre aide.

--
Paul




Avatar
Paul
Bonjour,
Merci beaucoup de ton aide. Ça marche bien.

--
Paul



"JB" a écrit dans le message de
news:
-La propriété List attend un tableau (Array). Dans cet exemple, la
fonction Transpose transforme un champ en tableau.
-Je ne comprends pas pourquoi l'événement Change est activé lors
d'une modif du champ source de la liste. Je l'observe.
-Liste avec 2 colonnes

http://cjoint.com/?jBvQhdjMNb

*Avec List (fonctionnement ok):
ColumnCount: 2 colonnes
ColumnWidth:40;40

Private Sub ComboBox1_DropButtonClick()
ComboBox1.List Application.Transpose(Application.Transpose([maliste3]))
End Sub

Private Sub ComboBox1_Change()
MsgBox "Change2"
End Sub

*Voir en PJ les versions avec ListFillrange.

JB