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

base de données et listbox

7 réponses
Avatar
jeclephi
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de faire
la correlation
entre la base de données dans la feuille de calcul et la listbox où ne sont
pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox ou
alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui de
la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp

7 réponses

Avatar
Youky
For k =0 to UserForm1.ListBox1.ListCount
If UserForm1.ListBox1.Selected(k) = True Then
ligne =k+1
'exemple 'Feuil1.Cells(ligne, 50) = UserForm1.ListBox1.List(k)
'et blablabla
End If
Next
ou si la listbox est rempli par des additem prévoir la listbox avec
2 colonnes et mettre le N° ligne en colonne2
Bien sur, cela, si j'ai bien compris
Youky
"jeclephi" a écrit dans le message de
news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de
faire la correlation
entre la base de données dans la feuille de calcul et la listbox où ne
sont pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox
ou alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp





Avatar
jeclephi
Merci à Youki pour sa réponse que je vais tester dans la journée
A la prochaine
Jcp

"Youky" a écrit dans le message de news:

For k =0 to UserForm1.ListBox1.ListCount
If UserForm1.ListBox1.Selected(k) = True Then
ligne =k+1
'exemple 'Feuil1.Cells(ligne, 50) = UserForm1.ListBox1.List(k)
'et blablabla
End If
Next
ou si la listbox est rempli par des additem prévoir la listbox avec
2 colonnes et mettre le N° ligne en colonne2
Bien sur, cela, si j'ai bien compris
Youky
"jeclephi" a écrit dans le message de
news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir
extraire les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de
faire la correlation
entre la base de données dans la feuille de calcul et la listbox où ne
sont pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox
ou alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp









Avatar
docm
Bonjour.

est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui de
la listbox?



Private Sub ListBox1_Click()

Call SynchroniserFeuille

End Sub

Sub SynchroniserFeuille()

Dim Premiere As String
Dim PremiereLigne As Long
Dim Colonne As Long
Dim Ligne As Long
Dim Plage As String

Plage = ListBox1.RowSource ' "a2:a100"

Ligne = Range(Plage)(1, 1).Row + ListBox1.ListIndex
Colonne = Range(Plage)(1, 1).Column

'Pour changer la cellule active
Premiere = "R" & Ligne & "C" & Colonne
Application.Goto Reference:=Premiere, Scroll:úlse

'Pour choisir la première ligne et la première colonne à afficher
PremiereLigne = Ligne - 3
If PremiereLigne < 1 Then PremiereLigne = 1
ActiveWindow.ScrollRow = PremiereLigne
ActiveWindow.ScrollColumn = Colonne

End Sub

Amicalement

docm

"jeclephi" a écrit dans le message de news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de faire
la correlation
entre la base de données dans la feuille de calcul et la listbox où ne sont
pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox ou
alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui de
la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp





Avatar
jeclephi
Bonjour,
Merci à docm pour sa réponse
Dés que je pourrai mettre en pratique celle ci (ainsi que celle de Youki) je
vous donnerai le résultat des courses.
Mais je pense que je devrais m'en sortir
Une question à Youki: Additem je ne connais pas et j'ai essayé de mettre une
colonne sup dans la listbox(columncount) mais
je ne vois pas comment l'exploiter. C'est évident: j'ai des lacunes
Merci
Jcp


"docm" a écrit dans le message de news:

Bonjour.

est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?



Private Sub ListBox1_Click()

Call SynchroniserFeuille

End Sub

Sub SynchroniserFeuille()

Dim Premiere As String
Dim PremiereLigne As Long
Dim Colonne As Long
Dim Ligne As Long
Dim Plage As String

Plage = ListBox1.RowSource ' "a2:a100"

Ligne = Range(Plage)(1, 1).Row + ListBox1.ListIndex
Colonne = Range(Plage)(1, 1).Column

'Pour changer la cellule active
Premiere = "R" & Ligne & "C" & Colonne
Application.Goto Reference:=Premiere, Scroll:úlse

'Pour choisir la première ligne et la première colonne à afficher
PremiereLigne = Ligne - 3
If PremiereLigne < 1 Then PremiereLigne = 1
ActiveWindow.ScrollRow = PremiereLigne
ActiveWindow.ScrollColumn = Colonne

End Sub

Amicalement

docm

"jeclephi" a écrit dans le message de
news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir
extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de
faire
la correlation
entre la base de données dans la feuille de calcul et la listbox où ne
sont
pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox
ou
alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp









Avatar
jeclephi
Bonjour,
Merci à Docm, sa macro sur la synchro entre feuille de calcul et base de
données fonctionne super, il me reste maintenant à voir comment.
Je m'acharne sur la présentation du numéro des lignes de la base de données
dans la listbox. La partie n'est pas encore gagnée. Mais Youki m'a mis sur
la bonne route
Amicalement
Jcp


"docm" a écrit dans le message de news:

Bonjour.

est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?



Private Sub ListBox1_Click()

Call SynchroniserFeuille

End Sub

Sub SynchroniserFeuille()

Dim Premiere As String
Dim PremiereLigne As Long
Dim Colonne As Long
Dim Ligne As Long
Dim Plage As String

Plage = ListBox1.RowSource ' "a2:a100"

Ligne = Range(Plage)(1, 1).Row + ListBox1.ListIndex
Colonne = Range(Plage)(1, 1).Column

'Pour changer la cellule active
Premiere = "R" & Ligne & "C" & Colonne
Application.Goto Reference:=Premiere, Scroll:úlse

'Pour choisir la première ligne et la première colonne à afficher
PremiereLigne = Ligne - 3
If PremiereLigne < 1 Then PremiereLigne = 1
ActiveWindow.ScrollRow = PremiereLigne
ActiveWindow.ScrollColumn = Colonne

End Sub

Amicalement

docm

"jeclephi" a écrit dans le message de
news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir
extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de
faire
la correlation
entre la base de données dans la feuille de calcul et la listbox où ne
sont
pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox
ou
alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp









Avatar
docm
Voici une suggestion pour ajouter le numéro des lignes.

Private Sub UserForm_Initialize()
Dim i As Single
Plage = ListBox1.RowSource '"a2:a75"
'On va utiliser la méthode Additem
ListBox1.RowSource = ""
'La zone de liste contient 2 colonnes de données
ListBox1.ColumnCount = 2
For i = 1 To Range(Plage).Rows.Count
'Utiliser la méthode Additem
ListBox1.AddItem Range(Plage)(i, 1)
'Ajouter le numéro de ligne dans la seconde colonne
ListBox1.List(ListBox1.ListCount - 1, 1) = Range(Plage)(i, 1).Row

Next i

End Sub

Amicalement

docm




"jeclephi" a écrit dans le message de news:
Bonjour,
Merci à Docm, sa macro sur la synchro entre feuille de calcul et base de
données fonctionne super, il me reste maintenant à voir comment.
Je m'acharne sur la présentation du numéro des lignes de la base de données
dans la listbox. La partie n'est pas encore gagnée. Mais Youki m'a mis sur
la bonne route
Amicalement
Jcp


"docm" a écrit dans le message de news:

Bonjour.

est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?



Private Sub ListBox1_Click()

Call SynchroniserFeuille

End Sub

Sub SynchroniserFeuille()

Dim Premiere As String
Dim PremiereLigne As Long
Dim Colonne As Long
Dim Ligne As Long
Dim Plage As String

Plage = ListBox1.RowSource ' "a2:a100"

Ligne = Range(Plage)(1, 1).Row + ListBox1.ListIndex
Colonne = Range(Plage)(1, 1).Column

'Pour changer la cellule active
Premiere = "R" & Ligne & "C" & Colonne
Application.Goto Reference:=Premiere, Scroll:úlse

'Pour choisir la première ligne et la première colonne à afficher
PremiereLigne = Ligne - 3
If PremiereLigne < 1 Then PremiereLigne = 1
ActiveWindow.ScrollRow = PremiereLigne
ActiveWindow.ScrollColumn = Colonne

End Sub

Amicalement

docm

"jeclephi" a écrit dans le message de
news:
Bonjour,
j'utilise une listbox pour sélectionner des fiches d'une base de données.
cette listbox est de type non modal, multisélection et avec une case à
cocher
pour chaque fiche. J'utilise la propriété "selected" pour pouvoir
extraire
les fiches sélectionnées
du tableau crée par vba(c'est surtout la simplicité de création et
d'exploitation du tableau crée par selected
qui m'intéresse )
Ma base de données est assez grande et ce n'est pas toujours simple de
faire
la correlation
entre la base de données dans la feuille de calcul et la listbox où ne
sont
pas visibles les numéros de lignes.
Est ce qu'on peut faire apparaitre ces numéros de lignes dans la listbox
ou
alors est ce que l'on peut synchroniser
le défilement de la base de données dans la feuille de calcul avec celui
de
la listbox?
J'ai l'impression que je suis en train de construire une usine à gaz!
en tout cas merci pour vos éventuelles réponses.
cordialement
Jcp













Avatar
jeclephi
Bon matin
Je suis persuadé que la solution donné par Docm va me sortir de l'impasse où
je me trouvais.
En fait Youki m'avais donné la voie mais bon, j'ai pas compris que additem
était une méthode
(la doc en ligne c'est pas fait pour les chiens nom d'une pipe!!)
Merci à Docm
Jcp

"docm" a écrit dans le message de news:
%
Voici une suggestion pour ajouter le numéro des lignes.

Private Sub UserForm_Initialize()
Dim i As Single
Plage = ListBox1.RowSource '"a2:a75"
'On va utiliser la méthode Additem
ListBox1.RowSource = ""
'La zone de liste contient 2 colonnes de données
ListBox1.ColumnCount = 2
For i = 1 To Range(Plage).Rows.Count
'Utiliser la méthode Additem
ListBox1.AddItem Range(Plage)(i, 1)
'Ajouter le numéro de ligne dans la seconde colonne
ListBox1.List(ListBox1.ListCount - 1, 1) = Range(Plage)(i, 1).Row

Next i

End Sub

Amicalement

docm




"jeclephi" a écrit dans le message de
news:
Bonjour,
Merci à Docm, sa macro sur la synchro entre feuille de calcul et base de
données fonctionne super, il me reste maintenant à voir comment.
Je m'acharne sur la présentation du numéro des lignes de la base de
données
dans la listbox. La partie n'est pas encore gagnée. Mais Youki m'a mis
sur
la bonne route
Amicalement
Jcp