OVH Cloud OVH Cloud

combobox encore et encore...

9 réponses
Avatar
AboVolo
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes données
se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:=False, ColumnAbsolute:=False) -----jusque là
c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc) !!!
End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur un
userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+

9 réponses

Avatar
Ellimac
Bonjour,

ComboBox1.ListFillRange = "A1:A" & c

Camille

-----Message d'origine-----
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la
feuil1 et mes données

se trouvent sur une colonne de la feuil2. Le nombre
d'éléments etant

variable je le calcule au préalable pour définir la plage
de cellules

qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse,
ColumnAbsolute:úlse) -----jusque là

c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici
ça plante avec

erreur 'Objet requis' ou même platage Excel grave (idem
sur un autre pc) !!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place
mon combo sur un

userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+


.



Avatar
michdenis
Bonjour AboVolo

As-tu essayé :

ComboBox1.ListFillRange = Trouve.parent.name & "!" & trouve.address(0,0)


Une autre façon d'obtenir le même résultat :

toto représente une plage nommée (barre des menus/insertiion/nom/définir)
'----------------
Trouve.name = "toto"
ComboBox1.ListFillRange = "toto"
'----------------

Salutations!


"AboVolo" a écrit dans le message de news:uPByN%
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes données
se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse, ColumnAbsolute:úlse) -----jusque là
c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc) !!!
End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur un
userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+
Avatar
AboVolo
NOTA
il faut lire : Set trouve = Sheets(2).Columns(1).End(xlDown)
au lieu de : Set trouve = Sheets(1).Columns(1).End(xlDown)




AboVolo a écrit dans le message :
uPByN#
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes données
se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse, ColumnAbsolute:úlse) -----jusque


c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc)
!!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur un
userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+




Avatar
AboVolo
ben non, si j'insère msgbox(c) ça affiche la bonne référence de cellule ex.:
A12
et comme je te l'ai dis, c'est nickel sur un userform, c'est ça qu'est
crispant :)
Ellimac a écrit dans le message :
684e01c3e661$ddc928f0$
Bonjour,

ComboBox1.ListFillRange = "A1:A" & c

Camille

-----Message d'origine-----
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la
feuil1 et mes données

se trouvent sur une colonne de la feuil2. Le nombre
d'éléments etant

variable je le calcule au préalable pour définir la plage
de cellules

qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse,
ColumnAbsolute:úlse) -----jusque là

c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici
ça plante avec

erreur 'Objet requis' ou même platage Excel grave (idem
sur un autre pc) !!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place
mon combo sur un

userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+


.



Avatar
Ellimac
Re,

ComboBox1.ListFillRange = range("A1:" & c).Address

Camille

-----Message d'origine-----
ben non, si j'insère msgbox(c) ça affiche la bonne
référence de cellule ex.:

A12
et comme je te l'ai dis, c'est nickel sur un userform,
c'est ça qu'est

crispant :)
Ellimac a écrit
dans le message :

684e01c3e661$ddc928f0$
Bonjour,

ComboBox1.ListFillRange = "A1:A" & c

Camille

-----Message d'origine-----
Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la
feuil1 et mes données

se trouvent sur une colonne de la feuil2. Le nombre
d'éléments etant

variable je le calcule au préalable pour définir la plage
de cellules

qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse,
ColumnAbsolute:úlse) -----jusque là

c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici
ça plante avec

erreur 'Objet requis' ou même platage Excel grave (idem
sur un autre pc) !!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place
mon combo sur un

userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+


.




.




Avatar
AboVolo
merci michdenis,

je me suis inspiré de ton exemple et maintenant je parviens à remplir mon
combo sans plantage :))

ComboBox1.ListFillRange = trouve.Parent.Name & "!" & "A1:" & c ---------
(Feuil2!A1:Axx)

par contre, si je clique sur le drop et que je sélectionne un élément
aaaaaargh ! plantage! :((
comme s'il ne pouvait pas actualiser la lisfillrange...??
si tu pouvais m'aider sur le coup...car je maitrise mal vba...



michdenis a écrit dans le message :

Bonjour AboVolo

As-tu essayé :

ComboBox1.ListFillRange = Trouve.parent.name & "!" & trouve.address(0,0)


Une autre façon d'obtenir le même résultat :

toto représente une plage nommée (barre des menus/insertiion/nom/définir)
'----------------
Trouve.name = "toto"
ComboBox1.ListFillRange = "toto"
'----------------

Salutations!


"AboVolo" a écrit dans le message de
news:uPByN%

Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes données
se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse, ColumnAbsolute:úlse) -----jusque


c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc)
!!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur un
userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+





Avatar
michdenis
Bonjour AboVolo,

En supposant que ton combobox est dans la même feuille que la liste des items,
si ton combobox est dans une autre feuille, modifie cette ligne
.ComboBox1.ListFillRange = "Maliste"
Par
Worksheets("NomDelaFeuille").ComboBox1.ListFillRange = "Maliste"


'-------------------
Private Sub ComboBox1_Change()

With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65356").End(xlUp).Row).Name = "MaListe"
.ComboBox1.ListFillRange = "Maliste"
End With

End Sub
'-------------------


Salutations!



"AboVolo" a écrit dans le message de news:
merci michdenis,

je me suis inspiré de ton exemple et maintenant je parviens à remplir mon
combo sans plantage :))

ComboBox1.ListFillRange = trouve.Parent.Name & "!" & "A1:" & c ---------
(Feuil2!A1:Axx)

par contre, si je clique sur le drop et que je sélectionne un élément
aaaaaargh ! plantage! :((
comme s'il ne pouvait pas actualiser la lisfillrange...??
si tu pouvais m'aider sur le coup...car je maitrise mal vba...



michdenis a écrit dans le message :

Bonjour AboVolo

As-tu essayé :

ComboBox1.ListFillRange = Trouve.parent.name & "!" & trouve.address(0,0)


Une autre façon d'obtenir le même résultat :

toto représente une plage nommée (barre des menus/insertiion/nom/définir)
'----------------
Trouve.name = "toto"
ComboBox1.ListFillRange = "toto"
'----------------

Salutations!


"AboVolo" a écrit dans le message de
news:uPByN%

Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes données
se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse, ColumnAbsolute:úlse) -----jusque


c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc)
!!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur un
userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+





Avatar
AboVolo
cher michdenis,

je parviens désormais à remplir mon combo avec l'une ou l'autre des méthodes
dont tu m'as fait part.
Le problème demeure que si je clique dans la liste pour sélectionner un
item, Excell me retourne un message d'erreur (état de la pile...). Si
j'utilise les flèches puis Enter ça fonctionne !!!
j'ai testé ça :

Private Sub ComboBox1_Click()
MsgBox ("youpi j'ai cliqué !")
End Sub

Plus de plantage ! mais que c lourd :)
Que mettre à la place du msgbox ? si t'as une idée elle est la bienvenue...

michdenis a écrit dans le message :


Bonjour AboVolo,

En supposant que ton combobox est dans la même feuille que la liste des
items,

si ton combobox est dans une autre feuille, modifie cette ligne
.ComboBox1.ListFillRange = "Maliste"
Par
Worksheets("NomDelaFeuille").ComboBox1.ListFillRange = "Maliste"


'-------------------
Private Sub ComboBox1_Change()

With Worksheets("Feuil1")
.Range("A1:A" & .Range("A65356").End(xlUp).Row).Name = "MaListe"
.ComboBox1.ListFillRange = "Maliste"
End With

End Sub
'-------------------


Salutations!



"AboVolo" a écrit dans le message de
news:

merci michdenis,

je me suis inspiré de ton exemple et maintenant je parviens à remplir mon
combo sans plantage :))

ComboBox1.ListFillRange = trouve.Parent.Name & "!" & "A1:" & c ---------
(Feuil2!A1:Axx)

par contre, si je clique sur le drop et que je sélectionne un élément
aaaaaargh ! plantage! :((
comme s'il ne pouvait pas actualiser la lisfillrange...??
si tu pouvais m'aider sur le coup...car je maitrise mal vba...



michdenis a écrit dans le message :

Bonjour AboVolo

As-tu essayé :

ComboBox1.ListFillRange = Trouve.parent.name & "!" & trouve.address(0,0)


Une autre façon d'obtenir le même résultat :

toto représente une plage nommée (barre des
menus/insertiion/nom/définir)


'----------------
Trouve.name = "toto"
ComboBox1.ListFillRange = "toto"
'----------------

Salutations!


"AboVolo" a écrit dans le message de
news:uPByN%

Bjr,

voilà mon pb Excel97 : j'ai placé un combobox sur la feuil1 et mes
données


se trouvent sur une colonne de la feuil2. Le nombre d'éléments etant
variable je le calcule au préalable pour définir la plage de cellules
qu'affichera le combo.

Private Sub ComboBox1_Change()
Dim trouve, c
Set trouve = Sheets(1).Columns(1).End(xlDown)
c = trouve.Address(RowAbsolute:úlse,
ColumnAbsolute:úlse) -----jusque



c'est OK
ComboBox1.ListFillRange = "A1:" & c --------- ici ça plante avec
erreur 'Objet requis' ou même platage Excel grave (idem sur un autre pc)
!!!

End sub

ce qui m'étonne est que ça fonctionne nickel si je place mon combo sur
un


userfor (avec rowsource au lieu de listfillrange).

si vous pouviez m'aider, merci d'avance. @+










Avatar
Clément Marcotte
Bonjour,
item, Excell me retourne un message d'erreur (état de la pile...).


C'est à cause de Windows. Il faut que tu augmentes la valeur du
paramètre Stacks dans Win.ini ou System.ini d'un multiple de 2, je
pense), me souviens plus trop.