Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Encore un problème de liste déroulante

6 réponses
Avatar
Louise
J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à dire
que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en ai
bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide

6 réponses

Avatar
michdenis
Bonjour Louise,

'---------------------
Private Sub Worksheet_Activate()
Dim Adr As String

With Worksheets("assureurs")
Adr = .Name & "!" & .Range("b3:B" & _
.Range("B65536").End(xlUp).Row).Address(0, 0)
.liste_ass.ListFillRange = Adr
End With
End Sub
'---------------------


Salutations!



"Louise" a écrit dans le message de news:%23WBf$
J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à dire
que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en ai
bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide
Avatar
michdenis
Seulement ceci serait suffisant ...!

'--------------
Private Sub Worksheet_Activate()
liste_ass.ListFillRange.ListFillRange = Name & "!" & Range("b3:B" & _
Range("B65536").End(xlUp).Row).Address(0, 0)
End Sub
'--------------


Salutations!



"michdenis" a écrit dans le message de news:uI6U%
Bonjour Louise,

'---------------------
Private Sub Worksheet_Activate()
Dim Adr As String

With Worksheets("assureurs")
Adr = .Name & "!" & .Range("b3:B" & _
.Range("B65536").End(xlUp).Row).Address(0, 0)
.liste_ass.ListFillRange = Adr
End With
End Sub
'---------------------


Salutations!



"Louise" a écrit dans le message de news:%23WBf$
J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à dire
que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en ai
bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide
Avatar
Louise
MERCI MERCI MERCI ....

YOU JUST MADE MY DAY
xxx

"michdenis" a écrit dans le message de
news:uI6U%
Bonjour Louise,

'---------------------
Private Sub Worksheet_Activate()
Dim Adr As String

With Worksheets("assureurs")
Adr = .Name & "!" & .Range("b3:B" & _
.Range("B65536").End(xlUp).Row).Address(0, 0)
.liste_ass.ListFillRange = Adr
End With
End Sub
'---------------------


Salutations!



"Louise" a écrit dans le message de
news:%23WBf$

J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à
dire

que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en
ai

bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide





Avatar
Louise
Ho ho petit problème,

Lorsque je supprime un enregistrement de ma feuille qui contient les
données, boum Excel plante et je reçoie un message de XP brrrrrrrrr.



"michdenis" a écrit dans le message de
news:
Seulement ceci serait suffisant ...!

'--------------
Private Sub Worksheet_Activate()
liste_ass.ListFillRange.ListFillRange = Name & "!" & Range("b3:B" & _
Range("B65536").End(xlUp).Row).Address(0, 0)
End Sub
'--------------


Salutations!



"michdenis" a écrit dans le message de
news:uI6U%

Bonjour Louise,

'---------------------
Private Sub Worksheet_Activate()
Dim Adr As String

With Worksheets("assureurs")
Adr = .Name & "!" & .Range("b3:B" & _
.Range("B65536").End(xlUp).Row).Address(0, 0)
.liste_ass.ListFillRange = Adr
End With
End Sub
'---------------------


Salutations!



"Louise" a écrit dans le message de
news:%23WBf$

J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à
dire

que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en
ai

bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide






Avatar
Louise
Ok OK je l'ai réglé

j'ai ajouter sur déactivation de la feuille de mettre la variable adr=""

bye bye merci encore


"Louise" a écrit dans le message de
news:%
Ho ho petit problème,

Lorsque je supprime un enregistrement de ma feuille qui contient les
données, boum Excel plante et je reçoie un message de XP brrrrrrrrr.



"michdenis" a écrit dans le message de
news:
Seulement ceci serait suffisant ...!

'--------------
Private Sub Worksheet_Activate()
liste_ass.ListFillRange.ListFillRange = Name & "!" & Range("b3:B" & _
Range("B65536").End(xlUp).Row).Address(0, 0)
End Sub
'--------------


Salutations!



"michdenis" a écrit dans le message de
news:uI6U%

Bonjour Louise,

'---------------------
Private Sub Worksheet_Activate()
Dim Adr As String

With Worksheets("assureurs")
Adr = .Name & "!" & .Range("b3:B" & _
.Range("B65536").End(xlUp).Row).Address(0, 0)
.liste_ass.ListFillRange = Adr
End With
End Sub
'---------------------


Salutations!



"Louise" a écrit dans le message de
news:%23WBf$

J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à
dire

que je peut ajouter un enregistrement sans modifier mon code qui
allimente


une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que
j'en


ai
bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide










Avatar
Misange
Bonjour,
en complément à ce qui t'a été donné et qui fonctionne, pour éviter de
te casser la tête, tu nommes la plage de données (par ex assur) qui te
sert à alimenter ta listbox en utilisant la fonction décaler :
Þcaler($b$3;;;nbval($b:$b)-3)
si tu as par exemple tes données dans la colonne B (rien d'autres en
dessous) avec 3 lignes de baratin en haut.
Ensuite tu utilises simplement le nom de la plage pour remplir ta liste.
Tout ajout se répercute également automatiquement dans ta liste. Pour
les retraits, il faut en revanche prévoir d'enlever les lignes vides.
liste_ass.RowSource = ("assureurs!assur")

J'emploie systématiquement cette syntaxe, qu'à l'usage je trouve bien
moins source d'erreur que celle que tu utilises.


Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

le 08/04/2004 23:02:
J'ai mis ce code en espérant que le remplissage soit dynamique, c'est à dire
que je peut ajouter un enregistrement sans modifier mon code qui allimente
une liste déroulante que j'ai mis dans ma feuille avec la boite à outil.

Sur activation de la feuille en question la liste se met à jour

ps: dercell = dernière cellule

Private Sub Worksheet_Activate()
Dim dercell As String
dercell = Range("b3").End(xlDown).Address
liste_ass.ListFillRange = "assureurs!b3:" & dercell
End Sub

Mon problème est qu'elle ne me ramène que 3 enregistrement alors que j'en ai
bien plus et il n'y a pas de cellules vides entre

Quel est mon erreur. un code similaire sur un userform avec une liste
déroulante fonctionne très bien

Merci de votre aide