Bonjour
Je veux utiliser une ListBox pour entrer des valeurs avec un clic droit sur
certaines cases d'une feuille Excel
Pour cela j'ai intercepté le clic droit du Classeur pour ajuster d'abord la
ListBox aux dimensions exactes de la case Excel active puis de la rendre
visible (au lancement la ListBox est invisible)
Le problème se pose quand je veux ajouter des valeurs dans la ListBox
L'opération addItem marche très bien mais quand je cherche à faire un Clear
je déclenche une erreur de propriété non reconnue (?)
Je m'adresse à la ListBox par ActiveSheet.Listboxes(1).Clear instruction qui
pose problème alors que les instructions ActiveSheet.Listboxes(1).Visible =
True ou False et ActiveSheet.Listboxes(1).AddItem XXX ne déclenchent pas
d'erreurs.
Avez-vous une idée?
PS: je n'ai pas encore résolu le problème de l'inscription de la valeur
sélectionnée de la ListBox dans la case puisque je bute pour l'instant sur
cet os, mais chaque chose en son temps.
Ta ListBox provient de la barre d'outils Formulaire ou Contrôles ?
AV
AV
Hypothèse (pour l'échec) : Ta ListBox (boite contrôles) a été initialisée par ListFillRange (voir dans les propriétés et supprimer) Ex :avec la plage A1:Ax de Feuil1 :
Sub iniLisBox() With Sheets("Feuil1") .ListBox1.Clear Tbl = .Range("A1", .[A1].End(4)) For Each Elt In Tbl .ListBox1.AddItem Elt Next Elt End With End Sub
AV
Hypothèse (pour l'échec) :
Ta ListBox (boite contrôles) a été initialisée par ListFillRange (voir dans les
propriétés et supprimer)
Ex :avec la plage A1:Ax de Feuil1 :
Sub iniLisBox()
With Sheets("Feuil1")
.ListBox1.Clear
Tbl = .Range("A1", .[A1].End(4))
For Each Elt In Tbl
.ListBox1.AddItem Elt
Next Elt
End With
End Sub
Hypothèse (pour l'échec) : Ta ListBox (boite contrôles) a été initialisée par ListFillRange (voir dans les propriétés et supprimer) Ex :avec la plage A1:Ax de Feuil1 :
Sub iniLisBox() With Sheets("Feuil1") .ListBox1.Clear Tbl = .Range("A1", .[A1].End(4)) For Each Elt In Tbl .ListBox1.AddItem Elt Next Elt End With End Sub
AV
Gil HASH
"AV" a écrit dans le message de news:
Ta ListBox provient de la barre d'outils Formulaire ou Contrôles ?
AV
Bonjour
Cette ListBox provient du menu formulaires d'Excel. Autant dire que je n'ai pas accès aux propriétés telles que je les connais sous editeur Visual Basic. C'est la raison pour laquelle j'ignore son nom que je ne peux même pas changer. Y a-t'il une façon de procéder pour avoir accès à ces propriétés?
"AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
news:e6na4ztvDHA.2080@TK2MSFTNGP10.phx.gbl...
Ta ListBox provient de la barre d'outils Formulaire ou Contrôles ?
AV
Bonjour
Cette ListBox provient du menu formulaires d'Excel. Autant dire que je n'ai
pas accès aux propriétés telles que je les connais sous editeur Visual
Basic. C'est la raison pour laquelle j'ignore son nom que je ne peux même
pas changer.
Y a-t'il une façon de procéder pour avoir accès à ces propriétés?
Ta ListBox provient de la barre d'outils Formulaire ou Contrôles ?
AV
Bonjour
Cette ListBox provient du menu formulaires d'Excel. Autant dire que je n'ai pas accès aux propriétés telles que je les connais sous editeur Visual Basic. C'est la raison pour laquelle j'ignore son nom que je ne peux même pas changer. Y a-t'il une façon de procéder pour avoir accès à ces propriétés?
AV
C'est la raison pour laquelle j'ignore son nom que je ne peux même pas changer.
Si, si : clic droit dessus > saisir dans la barre des noms > Ok
Suggestions : 1)- Utiliser la fonctionnalité Données > Validation > Liste........... 2)- Utiliser une listBox issue de la boite contrôles et code fourni précédemment 3)- Garder celle présente(Formulaire) et, pour l'initialiser : En supposant ta ListBox nommée "Z_List" (à adapter) sur "Feuil1" et ta liste de référence en A1:A10 de "Feuil2" :
Sub Initi_ListBox() With Sheets("Feuil1").ListBoxes("Z_List") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal" End With End Sub
Sub RécupVal() [A1] ActiveSheet.ListBoxes("Z_List").List(Sheets("Feuil1").ListBoxes("Z_List").ListIn dex) End Sub
AV
C'est la raison pour laquelle j'ignore son nom que je ne peux même
pas changer.
Si, si : clic droit dessus > saisir dans la barre des noms > Ok
Suggestions :
1)- Utiliser la fonctionnalité Données > Validation > Liste...........
2)- Utiliser une listBox issue de la boite contrôles et code fourni précédemment
3)- Garder celle présente(Formulaire) et, pour l'initialiser :
En supposant ta ListBox nommée "Z_List" (à adapter) sur "Feuil1" et ta liste de
référence en A1:A10 de "Feuil2" :
Sub Initi_ListBox()
With Sheets("Feuil1").ListBoxes("Z_List")
.ListFillRange = "Feuil2!$A$1:$A$10"
.ListIndex = 1
.OnAction = "RécupVal"
End With
End Sub
Sub RécupVal()
[A1] ActiveSheet.ListBoxes("Z_List").List(Sheets("Feuil1").ListBoxes("Z_List").ListIn
dex)
End Sub
C'est la raison pour laquelle j'ignore son nom que je ne peux même pas changer.
Si, si : clic droit dessus > saisir dans la barre des noms > Ok
Suggestions : 1)- Utiliser la fonctionnalité Données > Validation > Liste........... 2)- Utiliser une listBox issue de la boite contrôles et code fourni précédemment 3)- Garder celle présente(Formulaire) et, pour l'initialiser : En supposant ta ListBox nommée "Z_List" (à adapter) sur "Feuil1" et ta liste de référence en A1:A10 de "Feuil2" :
Sub Initi_ListBox() With Sheets("Feuil1").ListBoxes("Z_List") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal" End With End Sub
Sub RécupVal() [A1] ActiveSheet.ListBoxes("Z_List").List(Sheets("Feuil1").ListBoxes("Z_List").ListIn dex) End Sub
AV
En fait ce que je veux avec cette ListBox c'est une aide à la saisie des paramètres selon la zone de la feuille. Comme les zones concernent plusieurs dizaines de cellules chacune, je ne veux pas créer une ListBox pour chacune. La solution d'une seule ListBox redimensionnée et repositionnée sur la cellule active et remplie des valeurs correspondantes à la zone me parraissait la seule solutino logique. Par contre, je m'aperçois que cette ListBox créée ainsi dans une feuille échappe à l'éditeur Visual Basic.
Déjà quand je veux avoir accès aux propriétés de la ListBox avec le clic droit je n'ai droit qu'à la boîte de dialogue "Format de contrôle" avec les onglets "Dimension", "Protection", "Propriétés", "Web", "Co ntrôle" à l'onglet Propriétés il n'y a que le positionnement de l'objet.
En fait ce que je veux avec cette ListBox c'est une aide à
la saisie des paramètres selon la zone de la feuille.
Comme les zones concernent plusieurs dizaines de cellules
chacune, je ne veux pas créer une ListBox pour chacune.
La solution d'une seule ListBox redimensionnée et
repositionnée sur la cellule active et remplie des valeurs
correspondantes à la zone me parraissait la seule solutino
logique. Par contre, je m'aperçois que cette ListBox créée
ainsi dans une feuille échappe à l'éditeur Visual Basic.
Déjà quand je veux avoir accès aux propriétés de la
ListBox avec le clic droit je n'ai droit qu'à la boîte de
dialogue "Format de contrôle" avec les
onglets "Dimension", "Protection", "Propriétés", "Web", "Co
ntrôle"
à l'onglet Propriétés il n'y a que le positionnement de
l'objet.
En fait ce que je veux avec cette ListBox c'est une aide à la saisie des paramètres selon la zone de la feuille. Comme les zones concernent plusieurs dizaines de cellules chacune, je ne veux pas créer une ListBox pour chacune. La solution d'une seule ListBox redimensionnée et repositionnée sur la cellule active et remplie des valeurs correspondantes à la zone me parraissait la seule solutino logique. Par contre, je m'aperçois que cette ListBox créée ainsi dans une feuille échappe à l'éditeur Visual Basic.
Déjà quand je veux avoir accès aux propriétés de la ListBox avec le clic droit je n'ai droit qu'à la boîte de dialogue "Format de contrôle" avec les onglets "Dimension", "Protection", "Propriétés", "Web", "Co ntrôle" à l'onglet Propriétés il n'y a que le positionnement de l'objet.
AV
Mais c'était avec plaisir !
La solution d'une seule ListBox redimensionnée et repositionnée sur la cellule active et remplie des valeurs correspondantes à la zone me parraissait la seule solutino logique.
La liste de validation faisant référence à une plage dynamique, fait ça très bien !
Par contre, je m'aperçois que cette ListBox créée ainsi dans une feuille échappe à l'éditeur Visual Basic. Déjà quand je veux avoir accès aux propriétés de la
ListBox avec le clic droit je n'ai droit qu'à la boîte de dialogue "Format de contrôle"
Je t'invite à relire attentivement la/les réponses déjà fournie(s)...........
AV
Mais c'était avec plaisir !
La solution d'une seule ListBox redimensionnée et
repositionnée sur la cellule active et remplie des valeurs
correspondantes à la zone me parraissait la seule solutino
logique.
La liste de validation faisant référence à une plage dynamique, fait ça très
bien !
Par contre, je m'aperçois que cette ListBox créée
ainsi dans une feuille échappe à l'éditeur Visual Basic.
Déjà quand je veux avoir accès aux propriétés de la
ListBox avec le clic droit je n'ai droit qu'à la boîte de
dialogue "Format de contrôle"
Je t'invite à relire attentivement la/les réponses déjà fournie(s)...........
La solution d'une seule ListBox redimensionnée et repositionnée sur la cellule active et remplie des valeurs correspondantes à la zone me parraissait la seule solutino logique.
La liste de validation faisant référence à une plage dynamique, fait ça très bien !
Par contre, je m'aperçois que cette ListBox créée ainsi dans une feuille échappe à l'éditeur Visual Basic. Déjà quand je veux avoir accès aux propriétés de la
ListBox avec le clic droit je n'ai droit qu'à la boîte de dialogue "Format de contrôle"
Je t'invite à relire attentivement la/les réponses déjà fournie(s)...........
AV
Gil HASH
Ouf! Merci pour toutes ces réponses précieuses J'ai fini par comprendre comment affecter à la ListBox une propriété ListFillRange + définir le nom de la Procédure qui lui est affectée par contre, j'ai des problèmes concernant la sélection des valeurs de la ListBox : La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox (je ne sais pas si je me fais clairement comprendre) En fait tout la LIstBox reste à l'intérieur de la cellule.
Ouf! Merci pour toutes ces réponses précieuses
J'ai fini par comprendre comment affecter à la ListBox une propriété
ListFillRange + définir le nom de la Procédure qui lui est affectée par
contre, j'ai des problèmes concernant la sélection des valeurs de la ListBox
:
La ListBox est bien remplie par des valeurs mais je ne peux les faire
défiler et le "déroulant" ne sort pas de la ListBox
(je ne sais pas si je me fais clairement comprendre)
En fait tout la LIstBox reste à l'intérieur de la cellule.
Ouf! Merci pour toutes ces réponses précieuses J'ai fini par comprendre comment affecter à la ListBox une propriété ListFillRange + définir le nom de la Procédure qui lui est affectée par contre, j'ai des problèmes concernant la sélection des valeurs de la ListBox : La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox (je ne sais pas si je me fais clairement comprendre) En fait tout la LIstBox reste à l'intérieur de la cellule.
AV
La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox ! Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à "Zone de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que tu utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms : Sub Initi_ComboBox() With Sheets("Feuil1").DropDowns("Z_Combo") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal2" End With End Sub
Sub RécupVal2() [A2] ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").List Index) End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro : Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de colonne) Insertion > nom > définir : "laListe" > fait réf à : ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1) Clic droit sur ta combo > Format de controle > controle > Plage d'entrée : > laListe (ne pas oublier le signe = ) Avantage : tout ajout à la liste sera répercuté automatiquement dans la combo sans avoir à réinitialiser Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la barre d'outils formulaire : http://disciplus.simplex.free.fr/classeursxl/av-bo-formulaire.zip
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns, ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés par le nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au problème....
La ListBox est bien remplie par des valeurs mais je ne peux les faire
défiler et le "déroulant" ne sort pas de la ListBox
En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox !
Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à "Zone
de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que tu
utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms :
Sub Initi_ComboBox()
With Sheets("Feuil1").DropDowns("Z_Combo")
.ListFillRange = "Feuil2!$A$1:$A$10"
.ListIndex = 1
.OnAction = "RécupVal2"
End With
End Sub
Sub RécupVal2()
[A2] ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").List
Index)
End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro :
Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de colonne)
Insertion > nom > définir : "laListe" > fait réf à :
ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1)
Clic droit sur ta combo > Format de controle > controle > Plage d'entrée : > laListe (ne pas oublier le signe = )
Avantage : tout ajout à la liste sera répercuté automatiquement dans la combo
sans avoir à réinitialiser
Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la barre
d'outils formulaire :
http://disciplus.simplex.free.fr/classeursxl/av-bo-formulaire.zip
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de
compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns,
ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés par le
nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au
problème....
La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox ! Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à "Zone de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que tu utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms : Sub Initi_ComboBox() With Sheets("Feuil1").DropDowns("Z_Combo") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal2" End With End Sub
Sub RécupVal2() [A2] ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").List Index) End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro : Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de colonne) Insertion > nom > définir : "laListe" > fait réf à : ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1) Clic droit sur ta combo > Format de controle > controle > Plage d'entrée : > laListe (ne pas oublier le signe = ) Avantage : tout ajout à la liste sera répercuté automatiquement dans la combo sans avoir à réinitialiser Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la barre d'outils formulaire : http://disciplus.simplex.free.fr/classeursxl/av-bo-formulaire.zip
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns, ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés par le nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au problème....
microsoft
Bonjour,
Je 'profite' du fil pour un traitement que j'aimerai réaliser:
J'ai une liste de plusieurs centaines de références en colonnes. En face de chaque référence une famille de produit.
J'aimerai, dans une feuille, voire un classeur annexe, limiter la liste de choix de la référence en fonction de la famille choisie. Pour simplifier, le nombre de familles doit rester dynamique.
Je pense que je ne m'en sortirai pas sans Vba. Et Vba et moi ne sommes pas très copains. Quelqu'un peut m'aider ?
Merci d'avance.
PG
AV a écrit dans le message :
La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox ! Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à "Zone
de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que tu
utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms : Sub Initi_ComboBox() With Sheets("Feuil1").DropDowns("Z_Combo") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal2" End With End Sub
Sub RécupVal2() [A2] > ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").
List
Index) End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro : Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de colonne)
Insertion > nom > définir : "laListe" > fait réf à : ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1) Clic droit sur ta combo > Format de controle > controle > Plage d'entrée :
laListe (ne pas oublier le signe = ) Avantage : tout ajout à la liste sera répercuté automatiquement dans la
combo
sans avoir à réinitialiser Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la barre
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns, ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés par le
nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au problème....
Bonjour,
Je 'profite' du fil pour un traitement que j'aimerai réaliser:
J'ai une liste de plusieurs centaines de références en colonnes.
En face de chaque référence une famille de produit.
J'aimerai, dans une feuille, voire un classeur annexe, limiter la liste de
choix de la référence en fonction de la famille choisie.
Pour simplifier, le nombre de familles doit rester dynamique.
Je pense que je ne m'en sortirai pas sans Vba.
Et Vba et moi ne sommes pas très copains.
Quelqu'un peut m'aider ?
Merci d'avance.
PG
AV <alain.vallon@wanadoo.fr> a écrit dans le message :
OcGN3bTwDHA.2304@TK2MSFTNGP12.phx.gbl...
La ListBox est bien remplie par des valeurs mais je ne peux les faire
défiler et le "déroulant" ne sort pas de la ListBox
En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox !
Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à
"Zone
de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que
tu
utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms :
Sub Initi_ComboBox()
With Sheets("Feuil1").DropDowns("Z_Combo")
.ListFillRange = "Feuil2!$A$1:$A$10"
.ListIndex = 1
.OnAction = "RécupVal2"
End With
End Sub
Sub RécupVal2()
[A2] >
ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").
List
Index)
End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro :
Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de
colonne)
Insertion > nom > définir : "laListe" > fait réf à :
ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1)
Clic droit sur ta combo > Format de controle > controle > Plage d'entrée :
laListe (ne pas oublier le signe = )
Avantage : tout ajout à la liste sera répercuté automatiquement dans la
combo
sans avoir à réinitialiser
Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la
barre
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de
compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns,
ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés
par le
nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au
problème....
Je 'profite' du fil pour un traitement que j'aimerai réaliser:
J'ai une liste de plusieurs centaines de références en colonnes. En face de chaque référence une famille de produit.
J'aimerai, dans une feuille, voire un classeur annexe, limiter la liste de choix de la référence en fonction de la famille choisie. Pour simplifier, le nombre de familles doit rester dynamique.
Je pense que je ne m'en sortirai pas sans Vba. Et Vba et moi ne sommes pas très copains. Quelqu'un peut m'aider ?
Merci d'avance.
PG
AV a écrit dans le message :
La ListBox est bien remplie par des valeurs mais je ne peux les faire défiler et le "déroulant" ne sort pas de la ListBox En fait tout la LIstBox reste à l'intérieur de la cellule.
Ben parceque c'est justement une ListBox ! Si tu veux "ça le fasse", il faut utiliser une ComboBox qui corrrespond à "Zone
de liste modifiable" de la barre d'outils Formulaire (puisque c'est ce que tu
utilises) et que XL connaît sous le nom de "DropDowns"
Une fois que tu as dessiné ta "combo" et adapté les noms : Sub Initi_ComboBox() With Sheets("Feuil1").DropDowns("Z_Combo") .ListFillRange = "Feuil2!$A$1:$A$10" .ListIndex = 1 .OnAction = "RécupVal2" End With End Sub
Sub RécupVal2() [A2] > ActiveSheet.DropDowns("Z_Combo").List(Sheets("Feuil1").DropDowns("Z_Combo").
List
Index) End Sub
** Tu pourrais fort bien te passer d'initialiser la combo par une macro : Avec ta liste de réf en Feuil2 A2:Ax (A1 étant réservé à l'étiquette de colonne)
Insertion > nom > définir : "laListe" > fait réf à : ÞCALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A)-1) Clic droit sur ta combo > Format de controle > controle > Plage d'entrée :
laListe (ne pas oublier le signe = ) Avantage : tout ajout à la liste sera répercuté automatiquement dans la
combo
sans avoir à réinitialiser Ensuite par clic droit dessus, tu lui affectes la macro "RécupVal2"
Pour tout savoir (ou presque ;-) sur l'utilisation des contrôles de la barre
PS (utile ?) : Sur une feuille, pour résoudre d'éventuels problèmes de compatibilité (descendante) tous les noms ListBox, ListBoxes, DropDowns, ComboBox, Check Box, OptionButtons....etc....... peuvent être remplacés par le
nom générique de "DrawingObjects"
AV persuadé qu'une liste de validation correspondrait tout à fait au problème....
AV
Je pense que je ne m'en sortirai pas sans Vba.
Mais si, mais si
Regarde là : http://disciplus.simplex.free.fr/classeursxl/av-listevalidmultiples.zip En adaptant, c'est la réponse à ta question
AV
Je pense que je ne m'en sortirai pas sans Vba.
Mais si, mais si
Regarde là :
http://disciplus.simplex.free.fr/classeursxl/av-listevalidmultiples.zip
En adaptant, c'est la réponse à ta question