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

liste deroulante avec nom de cellule dans userform

6 réponses
Avatar
ats.ccs
Bonjour,

Sous excel 2002.

Est il possible d'obtenir dans un combox une liste composée de noms de
cellules ? (rowsource=liste)
Exemple de liste :
- indice A faisant référence à la cellule H4 de la feuille "saisie"
- indice B faisant référence à la cellule H4 de la feuille "prov"
- indice C faisant référence à la cellule H5 de la feuille "saisie"
Si je fais de façon "classique", après validation du formulaire, il faut que
j'aille dans ma cellule et que je rajoute le signe égal pour que les calculs
se fassent. Pas génial.

Merci pour votre aide.
BH

6 réponses

Avatar
LSteph
Bonjour,

Pour alimenter une combobox il n'y a pas que rowsource tu peux boucler
ou ajouter un par un des items

Exemples:
'''''''''''''
'ceci initialize le userform avec dans le combo la cellule h4 de
chaque feuille

Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To Sheets.Count
If Len(Sheets(i).[H4]) > 0 Then
ComboBox1.AddItem Sheets(i).[H4]
End If
Next i
End Sub
'''''''''''''''
'ou encore ceci met directement un texte pour chaque item

Private Sub UserForm_Initialize()
with Combobox1
.clear
.AddItem "indice A"
.AddItem "indice B"
.AddItem "indice C"
end with
End Sub
'''''''''''''''''
'tu peux aussi utiliser des refs ou noms mais cela renverra le contenu
de ce à quoi ils font référence exemple
Additem [H4]
ou
AddItem [Indice_A]

supposons que indice_A réfère à H4 qui lui même contient la formul e
+33
et en a1 j'ai 10

l'item ajouté sera le texte 43

Pour la suite de ta question je ne comprends pas ce que tu veux dire
par
"Faire de façon classique" , tu veux faire quoi?
je ne vois pas de calcul dans ton exemple ni en quoi les items de
liste provoqueraient de devoir aller dans des cellules pour mettre un
égal


--
lSteph




On 12 août, 15:07,
wrote:
Bonjour,

Sous excel 2002.

Est il possible d'obtenir dans un combox une liste composée de noms de
cellules ? (rowsource=liste)
Exemple de liste :
- indice A faisant référence à la cellule H4 de la feuille "saisie"
- indice B faisant référence à la cellule H4 de la feuille "prov"
- indice C faisant référence à la cellule H5 de la feuille "saisie"
Si je fais de façon "classique", après validation du formulaire, il f aut que
j'aille dans ma cellule et que je rajoute le signe égal pour que les ca lculs
se fassent. Pas génial.

Merci pour votre aide.
BH


Avatar
ats.ccs
Merci pour votre réponse.

Une nouvelle fois, j'ai du mal m'exprimé car je n'arrive pas à transposer
votre exmple.
J'essaye de faire mieux :
J'ai dans un onglet des cellules nommées.
J'ai créé un petit formulaire de saisie.
Je voudrais que la personne qui remplit le formulaire puisse choisir un des
noms dans une liste déroulante et lorsque le formulaire est validé le nom se
transforme en valeur pour que les calculs se fassent.
Or mes maigres connaissances font que lorsque je valide le formulaire, le
texte du nom va dans la cellule souhaité mais en texte pas en valeur
j'obtiens le contenu de la cellule XX : indice_mess --> calcul impossible
je voudrais : contenu de la cellule XX : =indice_mess --> calcul possible
Dans le temps, cet indice bouge, je veux donc avoir le nom et pas sa valeur
à l'instant T.

Par avance, merci.
BH
Avatar
LSteph
..
alors, exemple simple si dans l'initialize du formulaire on a (entre
autres):

Combobox1.AddItem "indice_A"

et que ce nom réfère à une cellule qui renvoie un calcul,lorsque je
valide mon formulaire après avoir sélectionné indice_A dedans.
si je veux renvoyer ce nom (par exemple) en c2 pour que celui-ci soit
utilisé par suite dans les calculs j'écrirai ceci:

[c2].FormulaLocal = "=" & ComboBox1


Cordialement.


--
lSteph

On 12 août, 16:48,
wrote:
Merci pour votre réponse.

Une nouvelle fois, j'ai du mal m'exprimé car je n'arrive pas à transp oser
votre exmple.
J'essaye de faire mieux :
J'ai dans un onglet des cellules nommées.
J'ai créé un petit formulaire de saisie.
Je voudrais que la personne qui remplit le formulaire puisse choisir un d es
noms dans une liste déroulante et lorsque le formulaire est validé le nom se
transforme en valeur pour que les calculs se fassent.
Or mes maigres connaissances font que lorsque je valide le formulaire, le
texte du nom va dans la cellule souhaité mais en texte pas en valeur
j'obtiens le contenu de la cellule XX : indice_mess --> calcul impossible
je voudrais : contenu de la cellule XX : =indice_mess --> calcul possib le
Dans le temps, cet indice bouge, je veux donc avoir le nom et pas sa vale ur
à l'instant T.

Par avance, merci.
BH


Avatar
ats.ccs
Merci beaucoup, j'ai encore besoin d'un coup de pouce

Pour transférer dans ma feuille, j'utilise la syntaxe suivante

Cells(ligne, 4) = UCase(Me.gr2)
Cells(ligne, 7) = Me.quote_mess

Comment et où dois je écrire
[c2].FormulaLocal = "=" & quote_mess

Encore merci.
BH


"LSteph" wrote:

...
alors, exemple simple si dans l'initialize du formulaire on a (entre
autres):

Combobox1.AddItem "indice_A"

et que ce nom réfère à une cellule qui renvoie un calcul,lorsque je
valide mon formulaire après avoir sélectionné indice_A dedans.
si je veux renvoyer ce nom (par exemple) en c2 pour que celui-ci soit
utilisé par suite dans les calculs j'écrirai ceci:

[c2].FormulaLocal = "=" & ComboBox1


Cordialement.


--
lSteph

On 12 août, 16:48,
wrote:
> Merci pour votre réponse.
>
> Une nouvelle fois, j'ai du mal m'exprimé car je n'arrive pas à transposer
> votre exmple.
> J'essaye de faire mieux :
> J'ai dans un onglet des cellules nommées.
> J'ai créé un petit formulaire de saisie.
> Je voudrais que la personne qui remplit le formulaire puisse choisir un des
> noms dans une liste déroulante et lorsque le formulaire est validé le nom se
> transforme en valeur pour que les calculs se fassent.
> Or mes maigres connaissances font que lorsque je valide le formulaire, le
> texte du nom va dans la cellule souhaité mais en texte pas en valeur
> j'obtiens le contenu de la cellule XX : indice_mess --> calcul impossible
> je voudrais : contenu de la cellule XX : =indice_mess --> calcul possible
> Dans le temps, cet indice bouge, je veux donc avoir le nom et pas sa valeur
> à l'instant T.
>
> Par avance, merci.
> BH




Avatar
LSteph
Cells(ligne, 7).formula = "=" & quote_mess


a écrit :
Merci beaucoup, j'ai encore besoin d'un coup de pouce

Pour transférer dans ma feuille, j'utilise la syntaxe suivante

Cells(ligne, 4) = UCase(Me.gr2)
Cells(ligne, 7) = Me.quote_mess

Comment et où dois je écrire
[c2].FormulaLocal = "=" & quote_mess

Encore merci.
BH


"LSteph" wrote:

...
alors, exemple simple si dans l'initialize du formulaire on a (entre
autres):

Combobox1.AddItem "indice_A"

et que ce nom réfère à une cellule qui renvoie un calcul,lorsque je
valide mon formulaire après avoir sélectionné indice_A dedans.
si je veux renvoyer ce nom (par exemple) en c2 pour que celui-ci soit
utilisé par suite dans les calculs j'écrirai ceci:

[c2].FormulaLocal = "=" & ComboBox1


Cordialement.


--
lSteph

On 12 août, 16:48,
wrote:
Merci pour votre réponse.

Une nouvelle fois, j'ai du mal m'exprimé car je n'arrive pas à transposer
votre exmple.
J'essaye de faire mieux :
J'ai dans un onglet des cellules nommées.
J'ai créé un petit formulaire de saisie.
Je voudrais que la personne qui remplit le formulaire puisse choisir un des
noms dans une liste déroulante et lorsque le formulaire est validé le nom se
transforme en valeur pour que les calculs se fassent.
Or mes maigres connaissances font que lorsque je valide le formulaire, le
texte du nom va dans la cellule souhaité mais en texte pas en valeur
j'obtiens le contenu de la cellule XX : indice_mess --> calcul impossible
je voudrais : contenu de la cellule XX : =indice_mess --> calcul possible
Dans le temps, cet indice bouge, je veux donc avoir le nom et pas sa valeur
à l'instant T.

Par avance, merci.
BH







Avatar
ats.ccs
Un grand merci.

BH.