J'ai un petit probl=E8me avec une liste d=E9roulante:
J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As=20
String, rge As String, cbo As String)
Worksheets(sh).Activate
frm.Controls(cbo).RowSource =3D Worksheets(sh).Range
(rge).Address
End Sub
et ensuite celui-l=E0 sur mon UserForm:
Public Sub UserForm_Activate()
'remplissage de la liste d=E9roulante "cboCDep"
Range("B1").Select
gstrRangeListe =3D "B1:B" & Selection.End(xlDown).Row
Call Remplirliste(Me, "Departement",=20
gstrRangeListe, "cboCDep")
End Sub
Mon probl=E8me est le suivant:
Sur un autre document la liste d=E9roulante reprend les noms=20
jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi=20
jusqu'au dernier nom dans la colonne mais en plus jusqu'=E0=20
la ligne 65536 (m=EAme si les lignes sont vides) ??
Merci =E0 celui qui connait une astuce ou au pire un autre=20
code pour remplir la liste d=E9roulante...
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
Paul V.
Bonjour,
Je ne vois pas vraiment d'explication. Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais remarqué. :-) Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante: J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As String, rge As String, cbo As String) Worksheets(sh).Activate frm.Controls(cbo).RowSource = Worksheets(sh).Range (rge).Address End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate() 'remplissage de la liste déroulante "cboCDep" Range("B1").Select gstrRangeListe = "B1:B" & Selection.End(xlDown).Row Call Remplirliste(Me, "Departement", gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant: Sur un autre document la liste déroulante reprend les noms jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi jusqu'au dernier nom dans la colonne mais en plus jusqu'à la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre code pour remplir la liste déroulante...
Bon week-end à tous
Bonjour,
Je ne vois pas vraiment d'explication.
Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas
d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais
remarqué. :-)
Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante:
J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As
String, rge As String, cbo As String)
Worksheets(sh).Activate
frm.Controls(cbo).RowSource = Worksheets(sh).Range
(rge).Address
End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate()
'remplissage de la liste déroulante "cboCDep"
Range("B1").Select
gstrRangeListe = "B1:B" & Selection.End(xlDown).Row
Call Remplirliste(Me, "Departement",
gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant:
Sur un autre document la liste déroulante reprend les noms
jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi
jusqu'au dernier nom dans la colonne mais en plus jusqu'à
la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre
code pour remplir la liste déroulante...
Je ne vois pas vraiment d'explication. Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais remarqué. :-) Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante: J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As String, rge As String, cbo As String) Worksheets(sh).Activate frm.Controls(cbo).RowSource = Worksheets(sh).Range (rge).Address End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate() 'remplissage de la liste déroulante "cboCDep" Range("B1").Select gstrRangeListe = "B1:B" & Selection.End(xlDown).Row Call Remplirliste(Me, "Departement", gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant: Sur un autre document la liste déroulante reprend les noms jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi jusqu'au dernier nom dans la colonne mais en plus jusqu'à la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre code pour remplir la liste déroulante...
Bon week-end à tous
Michel Gaboly
Bonjour,
C'est cette ligne qui est à la source du problème :
Si toutes les cellules situées plus bas que B1 dans la même colonne sont vides, Selection.End(xlDown) renvoie le numéro de la dernière ligne de la feuille soit 65536, ce qui explique le phénomène.
C'est la routine "RemplirListe" qui active la bonne feuille :
est exécutée AVANT l'appel de "RemplirListe". Par conséquent, si la feuille active à ce moment ne contient aucune donnée en colonne B à partir de la ligne 2, tu obtiens 65536 comme dernière ligne
Il faut simplement activer la feuille contenant les données avant de chercher à déterminer la dernière ligne et pas après.
dans la routine "RemplirListe", à laquelle il y aura un argument de moins à passer
Bonjour,
Je ne vois pas vraiment d'explication. Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais remarqué. :-) Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante: J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As String, rge As String, cbo As String) Worksheets(sh).Activate frm.Controls(cbo).RowSource = Worksheets(sh).Range (rge).Address End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate() 'remplissage de la liste déroulante "cboCDep" Range("B1").Select gstrRangeListe = "B1:B" & Selection.End(xlDown).Row Call Remplirliste(Me, "Departement", gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant: Sur un autre document la liste déroulante reprend les noms jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi jusqu'au dernier nom dans la colonne mais en plus jusqu'à la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre code pour remplir la liste déroulante...
Bon week-end à tous
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonjour,
C'est cette ligne qui est à la source du problème :
Si toutes les cellules situées plus bas que B1 dans la même colonne
sont vides, Selection.End(xlDown) renvoie le numéro de la dernière ligne de
la feuille soit 65536, ce qui explique le phénomène.
C'est la routine "RemplirListe" qui active la bonne feuille :
est exécutée AVANT l'appel de "RemplirListe". Par conséquent, si la feuille active à ce moment
ne contient aucune donnée en colonne B à partir de la ligne 2, tu obtiens 65536 comme dernière ligne
Il faut simplement activer la feuille contenant les données avant de chercher à déterminer la dernière
ligne et pas après.
dans la routine "RemplirListe", à laquelle il y aura un argument de moins à passer
Bonjour,
Je ne vois pas vraiment d'explication.
Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas
d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais
remarqué. :-)
Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante:
J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As
String, rge As String, cbo As String)
Worksheets(sh).Activate
frm.Controls(cbo).RowSource = Worksheets(sh).Range
(rge).Address
End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate()
'remplissage de la liste déroulante "cboCDep"
Range("B1").Select
gstrRangeListe = "B1:B" & Selection.End(xlDown).Row
Call Remplirliste(Me, "Departement",
gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant:
Sur un autre document la liste déroulante reprend les noms
jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi
jusqu'au dernier nom dans la colonne mais en plus jusqu'à
la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre
code pour remplir la liste déroulante...
Si toutes les cellules situées plus bas que B1 dans la même colonne sont vides, Selection.End(xlDown) renvoie le numéro de la dernière ligne de la feuille soit 65536, ce qui explique le phénomène.
C'est la routine "RemplirListe" qui active la bonne feuille :
est exécutée AVANT l'appel de "RemplirListe". Par conséquent, si la feuille active à ce moment ne contient aucune donnée en colonne B à partir de la ligne 2, tu obtiens 65536 comme dernière ligne
Il faut simplement activer la feuille contenant les données avant de chercher à déterminer la dernière ligne et pas après.
dans la routine "RemplirListe", à laquelle il y aura un argument de moins à passer
Bonjour,
Je ne vois pas vraiment d'explication. Une réponse serait peut-être que seul la cellule B1 soit utilisée et pas d'autres cellules dans la colonne B. Mais cela, il me semble que tu l'aurais remarqué. :-) Je suis curieux de lire d'autres avis.
Paul V
Sabian wrote:
Salut,
J'ai un petit problème avec une liste déroulante: J'ai ce code dans un module -->
Public Sub Remplirliste(ByRef frm As UserForm, sh As String, rge As String, cbo As String) Worksheets(sh).Activate frm.Controls(cbo).RowSource = Worksheets(sh).Range (rge).Address End Sub
et ensuite celui-là sur mon UserForm:
Public Sub UserForm_Activate() 'remplissage de la liste déroulante "cboCDep" Range("B1").Select gstrRangeListe = "B1:B" & Selection.End(xlDown).Row Call Remplirliste(Me, "Departement", gstrRangeListe, "cboCDep")
End Sub
Mon problème est le suivant: Sur un autre document la liste déroulante reprend les noms jusqu'au dernier nom dans la colonne.
Cependant dans un autre document il me liste aussi jusqu'au dernier nom dans la colonne mais en plus jusqu'à la ligne 65536 (même si les lignes sont vides) ??
Merci à celui qui connait une astuce ou au pire un autre code pour remplir la liste déroulante...