Dans une feuille j'ai une liste de nom dans la colonne A, cette zone
dynamique (décaler+nbval) est nommée "UnTitreMesTitres".
A coté j'ai un ComboBox nommé "UnTitreCbxTitre".
Dans le code de cette feuille, j'ai mis
Private Sub Worksheet_Activate()
ActiveSheet.UnTitreCbxTitre.ListFillRange Range("UnTitreMesTitres").Address
End Sub
Ca fonctionne, la liste proposée par le ComBox est bien la liste
attendue.
Si je déplace cette zone nommée dans une autre feuille ça ne fonctionne
plus ;-(
Au secours !!!
S'avez vous faire pointer le ListFillRange d'un ComboBox vers une zone
nommée située sur une autre feuille du classeur ?
Peut être bien que c'est lÍ qu'est l'os ! A la fin, il faudra que ça fonctionne avec la zone suivante ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[NomCompte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[NomCompte])) Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et TblListeComptes Í l'onglet ListeCompte. Pour le moment si j'essaye de faire simple, avec la zone nommé suivante ça ne passe pas =TblPositions[Titre] Encore un autre truc Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Range("TblOpérations[Titre]").Address qui ne va pas !!! Grrrr Pire Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Worksheets("Opérations").Range("TblOpérations[Titre]").Address renvoie les valeurs de la page UnTitre et qui ont l'adresse recherchée dans la page Opérations !!! Je ne comprends définitivement plus rien :-((( Merci @+Laurent
Bonjour, J'ai créé 3 plages nommées. tata :Â Â Â =TblPositions[Titre] Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne MyRange:Â ÞCALER(Tata;Toti;;;) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange > "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3" End Sub '------------------------------------------ MichD
Une petite correction Í ce que je proposais et qui correspond Í la formule "Decaler(...) de la question. J'ai créé 4 plages nommées. tata : =TblPositions[Titre] ''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti : =NBVAL(TblListeComptes[Compte]) Tobi : =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte]) MyRange: ÞCALER(Tata;Toti;;;Tobi) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x' End Sub '------------------------------------------ MichD
Le 06/09/22 Í 07:34, MichD a écrit :
Le 05/09/22 Í 07:51, LaurentC a écrit :
Peut être bien que c'est lÍ qu'est l'os !
A la fin, il faudra que ça fonctionne avec la zone suivante
Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et
TblListeComptes Í l'onglet ListeCompte.
Pour le moment si j'essaye de faire simple, avec la zone nommé
suivante ça ne passe pas
=TblPositions[Titre]
Encore un autre truc
Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Range("TblOpérations[Titre]").Address
qui ne va pas !!! Grrrr
Pire
Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Worksheets("Opérations").Range("TblOpérations[Titre]").Address
renvoie les valeurs de la page UnTitre et qui ont l'adresse recherchée
dans la page Opérations !!!
Je ne comprends définitivement plus rien :-(((
Merci
@+Laurent
Bonjour,
J'ai créé 3 plages nommées.
tata :Â Â Â =TblPositions[Titre]
Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non
"MonCompte" dans mon exemple
toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne
MyRange:Â ÞCALER(Tata;Toti;;;)
En VBA, pour remplir ton combbox
'------------------------------------------
Sub Worksheet_Activatess()
With Range("MyRange")
   X = .Parent.Name & "!" & .Address
End With
'Si ton combobox émane de la barre d'outils "Activex"
ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X
'Si ton combobox émane de la barre d'outil "Formulaire"
Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange > "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3"
End Sub
'------------------------------------------
MichD
Une petite correction Í ce que je proposais et qui correspond Í la
formule "Decaler(...) de la question.
J'ai créé 4 plages nommées.
tata : =TblPositions[Titre]
''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non
"MonCompte" dans mon exemple
toti : =NBVAL(TblListeComptes[Compte])
Tobi : =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte])
MyRange: ÞCALER(Tata;Toti;;;Tobi)
En VBA, pour remplir ton combbox
'------------------------------------------
Sub Worksheet_Activatess()
With Range("MyRange")
X = .Parent.Name & "!" & .Address
End With
'Si ton combobox émane de la barre d'outils "Activex"
ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X
'Si ton combobox émane de la barre d'outil "Formulaire"
ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x'
End Sub
'------------------------------------------
Peut être bien que c'est lÍ qu'est l'os ! A la fin, il faudra que ça fonctionne avec la zone suivante ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[NomCompte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[NomCompte])) Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et TblListeComptes Í l'onglet ListeCompte. Pour le moment si j'essaye de faire simple, avec la zone nommé suivante ça ne passe pas =TblPositions[Titre] Encore un autre truc Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Range("TblOpérations[Titre]").Address qui ne va pas !!! Grrrr Pire Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >> Worksheets("Opérations").Range("TblOpérations[Titre]").Address renvoie les valeurs de la page UnTitre et qui ont l'adresse recherchée dans la page Opérations !!! Je ne comprends définitivement plus rien :-((( Merci @+Laurent
Bonjour, J'ai créé 3 plages nommées. tata :Â Â Â =TblPositions[Titre] Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne MyRange:Â ÞCALER(Tata;Toti;;;) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange > "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3" End Sub '------------------------------------------ MichD
Une petite correction Í ce que je proposais et qui correspond Í la formule "Decaler(...) de la question. J'ai créé 4 plages nommées. tata : =TblPositions[Titre] ''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti : =NBVAL(TblListeComptes[Compte]) Tobi : =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte]) MyRange: ÞCALER(Tata;Toti;;;Tobi) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x' End Sub '------------------------------------------ MichD
MichD
Le 06/09/22 Í 10:38, MichD a écrit :
Le 06/09/22 Í 07:34, MichD a écrit :
Le 05/09/22 Í 07:51, LaurentC a écrit :
Peut être bien que c'est lÍ qu'est l'os ! A la fin, il faudra que ça fonctionne avec la zone suivante ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[NomCompte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[NomCompte])) Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et TblListeComptes Í l'onglet ListeCompte. Pour le moment si j'essaye de faire simple, avec la zone nommé suivante ça ne passe pas =TblPositions[Titre] Encore un autre truc Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Range("TblOpérations[Titre]").Address qui ne va pas !!! Grrrr Pire Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Worksheets("Opérations").Range("TblOpérations[Titre]").Address renvoie les valeurs de la page UnTitre et qui ont l'adresse recherchée dans la page Opérations !!! Je ne comprends définitivement plus rien :-((( Merci @+Laurent
Bonjour, J'ai créé 3 plages nommées. tata :Â Â Â =TblPositions[Titre] Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne MyRange:Â ÞCALER(Tata;Toti;;;) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange >> "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3" End Sub '------------------------------------------ MichD
Une petite correction Í ce que je proposais et qui correspond Í la formule "Decaler(...) de la question. J'ai créé 4 plages nommées. tata :Â Â Â =TblPositions[Titre] ''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte]) Tobi :Â Â Â =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte]) MyRange:Â ÞCALER(Tata;Toti;;;Tobi) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x' End Sub '------------------------------------------ MichD
Et pour finir, on peut définir seulement une plage nommée "MichD", C'est plus court et simple en utilisant la procédure du message précédent. Modifier "Compte" pour "MonCompte" tel que défini dans la formule initiale. MyRange : ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[Compte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte])) MichD
Le 06/09/22 Í 10:38, MichD a écrit :
Le 06/09/22 Í 07:34, MichD a écrit :
Le 05/09/22 Í 07:51, LaurentC a écrit :
Peut être bien que c'est lÍ qu'est l'os !
A la fin, il faudra que ça fonctionne avec la zone suivante
Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et
TblListeComptes Í l'onglet ListeCompte.
Pour le moment si j'essaye de faire simple, avec la zone nommé
suivante ça ne passe pas
=TblPositions[Titre]
Encore un autre truc
Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Range("TblOpérations[Titre]").Address
qui ne va pas !!! Grrrr
Pire
Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Worksheets("Opérations").Range("TblOpérations[Titre]").Address
renvoie les valeurs de la page UnTitre et qui ont l'adresse
recherchée dans la page Opérations !!!
Je ne comprends définitivement plus rien :-(((
Merci
@+Laurent
Bonjour,
J'ai créé 3 plages nommées.
tata :Â Â Â =TblPositions[Titre]
Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non
"MonCompte" dans mon exemple
toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne
MyRange:Â ÞCALER(Tata;Toti;;;)
En VBA, pour remplir ton combbox
'------------------------------------------
Sub Worksheet_Activatess()
With Range("MyRange")
    X = .Parent.Name & "!" & .Address
End With
'Si ton combobox émane de la barre d'outils "Activex"
ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X
'Si ton combobox émane de la barre d'outil "Formulaire"
Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange >> "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3"
End Sub
'------------------------------------------
MichD
Une petite correction Í ce que je proposais et qui correspond Í la
formule "Decaler(...) de la question.
J'ai créé 4 plages nommées.
tata :Â Â Â =TblPositions[Titre]
''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non
"MonCompte" dans mon exemple
toti :Â Â Â =NBVAL(TblListeComptes[Compte])
Tobi :Â Â Â =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte])
MyRange:Â ÞCALER(Tata;Toti;;;Tobi)
En VBA, pour remplir ton combbox
'------------------------------------------
Sub Worksheet_Activatess()
With Range("MyRange")
   X = .Parent.Name & "!" & .Address
End With
'Si ton combobox émane de la barre d'outils "Activex"
ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X
'Si ton combobox émane de la barre d'outil "Formulaire"
ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x'
End Sub
'------------------------------------------
MichD
Et pour finir, on peut définir seulement une plage nommée "MichD",
C'est plus court et simple en utilisant la procédure du message
précédent. Modifier "Compte" pour "MonCompte" tel que défini dans la
formule initiale.
Peut être bien que c'est lÍ qu'est l'os ! A la fin, il faudra que ça fonctionne avec la zone suivante ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[NomCompte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[NomCompte])) Elle appelle 2 tableaux : TblPositions Í l'onglet Positions et TblListeComptes Í l'onglet ListeCompte. Pour le moment si j'essaye de faire simple, avec la zone nommé suivante ça ne passe pas =TblPositions[Titre] Encore un autre truc Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Range("TblOpérations[Titre]").Address qui ne va pas !!! Grrrr Pire Worksheets("UnTitre").UnTitreCbxTitre.ListFillRange >>> Worksheets("Opérations").Range("TblOpérations[Titre]").Address renvoie les valeurs de la page UnTitre et qui ont l'adresse recherchée dans la page Opérations !!! Je ne comprends définitivement plus rien :-((( Merci @+Laurent
Bonjour, J'ai créé 3 plages nommées. tata :Â Â Â =TblPositions[Titre] Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte])+2Â 'Mon étiquette de colonne MyRange:Â ÞCALER(Tata;Toti;;;) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" Worksheets("Feuil2").Shapes("toto").ControlFormat.ListFillRange >> "Feuil1!A1:A10" ' Range("UnTitreMesTitres").Address ' "A1:A3" End Sub '------------------------------------------ MichD
Une petite correction Í ce que je proposais et qui correspond Í la formule "Decaler(...) de la question. J'ai créé 4 plages nommées. tata :Â Â Â =TblPositions[Titre] ''Attention : Moi j'ai utilisé "Compte" comme étiquette de colonne et non "MonCompte" dans mon exemple toti :Â Â Â =NBVAL(TblListeComptes[Compte]) Tobi :Â Â Â =NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte]) MyRange:Â ÞCALER(Tata;Toti;;;Tobi) En VBA, pour remplir ton combbox '------------------------------------------ Sub Worksheet_Activatess() With Range("MyRange") Â Â Â X = .Parent.Name & "!" & .Address End With 'Si ton combobox émane de la barre d'outils "Activex" ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X 'Si ton combobox émane de la barre d'outil "Formulaire" ActiveSheet.Shapes("toto").ControlFormat.ListFillRange = x' End Sub '------------------------------------------ MichD
Et pour finir, on peut définir seulement une plage nommée "MichD", C'est plus court et simple en utilisant la procédure du message précédent. Modifier "Compte" pour "MonCompte" tel que défini dans la formule initiale. MyRange : ÞCALER(TblPositions[Titre];NBVAL(TblListeComptes[Compte]);;NBVAL(TblPositions[Titre])-NBVAL(TblListeComptes[Compte])) MichD
LaurentC
Bonjour MichD Ca y est, ça maaaaAAAARRRRCHHHhheeee ! C'est bien un controle ActiveX. En fait c'est passé en précisant la Worksheets With Worksheets("Positions").Range("PositionsSansCash") X = .Parent.Name & "!" & .Address End With ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X Mille merci @+Laurent
Bonjour MichD
Ca y est, ça maaaaAAAARRRRCHHHhheeee !
C'est bien un controle ActiveX.
En fait c'est passé en précisant la Worksheets
With Worksheets("Positions").Range("PositionsSansCash")
X = .Parent.Name & "!" & .Address
End With
ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X
Bonjour MichD Ca y est, ça maaaaAAAARRRRCHHHhheeee ! C'est bien un controle ActiveX. En fait c'est passé en précisant la Worksheets With Worksheets("Positions").Range("PositionsSansCash") X = .Parent.Name & "!" & .Address End With ActiveSheet.OLEObjects("UnTitreCbxTitre").ListFillRange = X Mille merci @+Laurent