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

recup donnée feuille excel dans combobox

5 réponses
Avatar
Pierre
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans une
feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de saisies, et
qu'il se remplisse avec les données de la feuille excel (que j'ai déjà
transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox récupère les
données de la cellule C6 mais aussi se charge avec la liste qui se trouve
dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre

5 réponses

Avatar
Clément Marcotte
Bonjour,

Je viens de tester cela sommairement. Cela a l'air de fonctionner en
autant que la zone liste a été précédemment définie dans le classeur.

Private Sub UserForm_Initialize()
Dim i As Integer, lenombre As Integer
Dim ladresse As String, j As Integer
'mettre la valeur de la cellule c6 en première
'place de la cComboBox
ComboBox1.AddItem (ActiveSheet.Range("c6").Value)
'Ajouter les autres valeurs
lenombre = Range("liste").Cells.Count
For i = 0 To lenombre - 1
j = i + 1
ladresse = "a" & CStr(j)
ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)
Next
End Sub


--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans
une

feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de
saisies, et

qu'il se remplisse avec les données de la feuille excel (que j'ai
déjà

transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox récupère
les

données de la cellule C6 mais aussi se charge avec la liste qui se
trouve

dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre






Avatar
Clément Marcotte
Bonjour,

ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)


Ces deux lignes doivent n'en faire qu'une seule


--
On apprend pas à un vieux singe à faire des grimaces
"Clément Marcotte" a écrit dans le
message de news:
Bonjour,

Je viens de tester cela sommairement. Cela a l'air de fonctionner en
autant que la zone liste a été précédemment définie dans le
classeur.


Private Sub UserForm_Initialize()
Dim i As Integer, lenombre As Integer
Dim ladresse As String, j As Integer
'mettre la valeur de la cellule c6 en première
'place de la cComboBox
ComboBox1.AddItem (ActiveSheet.Range("c6").Value)
'Ajouter les autres valeurs
lenombre = Range("liste").Cells.Count
For i = 0 To lenombre - 1
j = i + 1
ladresse = "a" & CStr(j)
ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)
Next
End Sub


--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans
une

feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de
saisies, et

qu'il se remplisse avec les données de la feuille excel (que j'ai
déjà

transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox
récupère


les
données de la cellule C6 mais aussi se charge avec la liste qui se
trouve

dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre









Avatar
Pierre
Bonjour Clément, et merci de ta réponse

Excellent, cela fonctionne.
Par contre, je suis obligé de passer par une listbox car avec la combobox,
la valeur ne s'affiche pas il faut actionner la flèche pour retrouver cette
valeur en premier de la liste. Pour l'utilisateur c'est pas pratique sur un
formulaire qui contient beaucoup de données car il ne voit pas ce qu'il a
saisie il faut qu'il fasse défiler toutes les combobox.
D'habitude, j'évite de me servir de la listbox car:
1)l'utilisateur ne peut pas saisir une autre valeur que celles dans la liste
(à moins qu'il existe une solution?)
2)il faut cliquer sur la valeur choisie sinon elle n'est pas prise. Et cela
les utilisateurs ont du mal. Ils font défiler la liste mais ne clique pas
sur la valeur choisie!!!
Penses tu qu'il est possible de rester avec des combobox mais la valeur
s'affiche à l'ouverture du formulaire? Je préférerais par contre, sinon, mes
utilisateurs vont s'habituer.

Bonne journée

Pierre


"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Je viens de tester cela sommairement. Cela a l'air de fonctionner en
autant que la zone liste a été précédemment définie dans le classeur.

Private Sub UserForm_Initialize()
Dim i As Integer, lenombre As Integer
Dim ladresse As String, j As Integer
'mettre la valeur de la cellule c6 en première
'place de la cComboBox
ComboBox1.AddItem (ActiveSheet.Range("c6").Value)
'Ajouter les autres valeurs
lenombre = Range("liste").Cells.Count
For i = 0 To lenombre - 1
j = i + 1
ladresse = "a" & CStr(j)
ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)
Next
End Sub


--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans
une

feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de
saisies, et

qu'il se remplisse avec les données de la feuille excel (que j'ai
déjà

transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox récupère
les

données de la cellule C6 mais aussi se charge avec la liste qui se
trouve

dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre









Avatar
Clément Marcotte
Bonjour,

Pour afficher le premier élément de la liste, j'ai trouvé cela, juste
avant mon End Sub:

ComboBox1.Value = ComboBox1.List(0)

Le nombre représente le numéro de l'élément à afficher. Le premier
élément porte le numéro 0.

--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonjour Clément, et merci de ta réponse

Excellent, cela fonctionne.
Par contre, je suis obligé de passer par une listbox car avec la
combobox,

la valeur ne s'affiche pas il faut actionner la flèche pour
retrouver cette

valeur en premier de la liste. Pour l'utilisateur c'est pas pratique
sur un

formulaire qui contient beaucoup de données car il ne voit pas ce
qu'il a

saisie il faut qu'il fasse défiler toutes les combobox.
D'habitude, j'évite de me servir de la listbox car:
1)l'utilisateur ne peut pas saisir une autre valeur que celles dans
la liste

(à moins qu'il existe une solution?)
2)il faut cliquer sur la valeur choisie sinon elle n'est pas prise.
Et cela

les utilisateurs ont du mal. Ils font défiler la liste mais ne
clique pas

sur la valeur choisie!!!
Penses tu qu'il est possible de rester avec des combobox mais la
valeur

s'affiche à l'ouverture du formulaire? Je préférerais par contre,
sinon, mes

utilisateurs vont s'habituer.

Bonne journée

Pierre


"Clément Marcotte" a écrit dans le
message

de news:
Bonjour,

Je viens de tester cela sommairement. Cela a l'air de fonctionner
en


autant que la zone liste a été précédemment définie dans le
classeur.



Private Sub UserForm_Initialize()
Dim i As Integer, lenombre As Integer
Dim ladresse As String, j As Integer
'mettre la valeur de la cellule c6 en première
'place de la cComboBox
ComboBox1.AddItem (ActiveSheet.Range("c6").Value)
'Ajouter les autres valeurs
lenombre = Range("liste").Cells.Count
For i = 0 To lenombre - 1
j = i + 1
ladresse = "a" & CStr(j)
ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)
Next
End Sub


--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans
une

feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de
saisies, et

qu'il se remplisse avec les données de la feuille excel (que j'ai
déjà

transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox
récupère



les
données de la cellule C6 mais aussi se charge avec la liste qui
se



trouve
dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre













Avatar
pierre
Bonjour Clément,
C'est nickel!

Je te remercie
Pierre

"Clément Marcotte" a écrit dans le message
de news: #
Bonjour,

Pour afficher le premier élément de la liste, j'ai trouvé cela, juste
avant mon End Sub:

ComboBox1.Value = ComboBox1.List(0)

Le nombre représente le numéro de l'élément à afficher. Le premier
élément porte le numéro 0.

--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonjour Clément, et merci de ta réponse

Excellent, cela fonctionne.
Par contre, je suis obligé de passer par une listbox car avec la
combobox,

la valeur ne s'affiche pas il faut actionner la flèche pour
retrouver cette

valeur en premier de la liste. Pour l'utilisateur c'est pas pratique
sur un

formulaire qui contient beaucoup de données car il ne voit pas ce
qu'il a

saisie il faut qu'il fasse défiler toutes les combobox.
D'habitude, j'évite de me servir de la listbox car:
1)l'utilisateur ne peut pas saisir une autre valeur que celles dans
la liste

(à moins qu'il existe une solution?)
2)il faut cliquer sur la valeur choisie sinon elle n'est pas prise.
Et cela

les utilisateurs ont du mal. Ils font défiler la liste mais ne
clique pas

sur la valeur choisie!!!
Penses tu qu'il est possible de rester avec des combobox mais la
valeur

s'affiche à l'ouverture du formulaire? Je préférerais par contre,
sinon, mes

utilisateurs vont s'habituer.

Bonne journée

Pierre


"Clément Marcotte" a écrit dans le
message

de news:
Bonjour,

Je viens de tester cela sommairement. Cela a l'air de fonctionner
en


autant que la zone liste a été précédemment définie dans le
classeur.



Private Sub UserForm_Initialize()
Dim i As Integer, lenombre As Integer
Dim ladresse As String, j As Integer
'mettre la valeur de la cellule c6 en première
'place de la cComboBox
ComboBox1.AddItem (ActiveSheet.Range("c6").Value)
'Ajouter les autres valeurs
lenombre = Range("liste").Cells.Count
For i = 0 To lenombre - 1
j = i + 1
ladresse = "a" & CStr(j)
ComboBox1.AddItem
(Sheets("article").Range("liste").Range(ladresse).Value)
Next
End Sub


--
On apprend pas à un vieux singe à faire des grimaces
"Pierre" a écrit dans le message de
news:
Bonsoir à vous tous,

J'ai saisie dans mon formulaire des données que je transfère dans
une

feuille excel "detail".
J'aimerais pouvoir rappeler ce formulaire, en cas de modif de
saisies, et

qu'il se remplisse avec les données de la feuille excel (que j'ai
déjà

transférée). Pour les textbox, no problem je passe par :

Private Sub UserForm_initialize()
Sheets("detail").Select
Txtnum.Value = Range("e4")
Txtdevis.Value = Range("f4")

Par contre pour les combobox ? Il faudrait que la combobox
récupère



les
données de la cellule C6 mais aussi se charge avec la liste qui
se



trouve
dans feuille "article" nom "liste" .

Est ce possible?

Bonne soirée
Pierre