XL 2019 Affichage dans listbox et reprise dans les textbox

Flnte

XLDnaute Junior
Bonjour,

Dans mon fichier j'ai un Userform4 qui doit me servir à afficher les données de la feuille Granit.
Ainsi ListBox1 reprend le tableau Granit et ListBox2 le table Usinage. Ensuite j'ai des TextBox qui vont me servir à modifier les données de ces tableau. Le Textbox1 et 2 pour Granit et 3 et 4 pour Usinage.
Et enfin un bouton pour valider. Mais j'ai deux soucis :
Le premier concerne l'affichage dans les ListBox, en effet je souhaite que les colonnes soient alignés mais cela ne fonctionne pas. Et ensuite Pour la listBox2 j'ai bien les données qui s'affichent mais les textbox gardent toujour la premier ligne et non celle selectionné.

Quelqu'un a t-il une piste?
 

Pièces jointes

  • MaJ Label dans un USF V1 (10).xlsm
    206.6 KB · Affichages: 3
Solution
Bonsoir.
Pour la listebox alignée, tu dois utiliser les colonnes d'une list box
par exemple
columncount=3
définir la largeur des colonnes ici 100;100;100
et faire quelque chose comme ceci

Pour la liste box 2 pas trouvée?

essaie d'être plus précis....
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Granit") ' Remplacez "Granit" par le nom de votre feuille
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Trouve la dernière ligne avec des données en colonne A

Dim rowIndex As Long
For rowIndex = 2 To lastRow ' Commence à partir de la deuxième ligne pour exclure l'en-tête
Dim rowData As String
ListBox1.AddItem ws.Cells(rowIndex...

sousou

XLDnaute Barbatruc
Bonsoir.
Pour la listebox alignée, tu dois utiliser les colonnes d'une list box
par exemple
columncount=3
définir la largeur des colonnes ici 100;100;100
et faire quelque chose comme ceci

Pour la liste box 2 pas trouvée?

essaie d'être plus précis....
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Granit") ' Remplacez "Granit" par le nom de votre feuille
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Trouve la dernière ligne avec des données en colonne A

Dim rowIndex As Long
For rowIndex = 2 To lastRow ' Commence à partir de la deuxième ligne pour exclure l'en-tête
Dim rowData As String
ListBox1.AddItem ws.Cells(rowIndex, 1).value
ListBox1.List(ListBox1.ListCount - 1, 1) = ws.Cells(rowIndex, 2).value
ListBox1.List(ListBox1.ListCount - 1, 2) = ws.Cells(rowIndex, 3).value
'rowData = ws.Cells(rowIndex, 1).value & vbTab & ws.Cells(rowIndex, 2).value & vbTab & ws.Cells(rowIndex, 3).value
ListBox1.AddItem rowData
Next rowIndex
End Sub
 

Pièces jointes

  • MaJ Label dans un USF V1 (10).xlsm
    209.8 KB · Affichages: 1

Flnte

XLDnaute Junior
Bonsoir.
Pour la listebox alignée, tu dois utiliser les colonnes d'une list box
par exemple
columncount=3
définir la largeur des colonnes ici 100;100;100
et faire quelque chose comme ceci

Pour la liste box 2 pas trouvée?

essaie d'être plus précis....
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Granit") ' Remplacez "Granit" par le nom de votre feuille
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Trouve la dernière ligne avec des données en colonne A

Dim rowIndex As Long
For rowIndex = 2 To lastRow ' Commence à partir de la deuxième ligne pour exclure l'en-tête
Dim rowData As String
ListBox1.AddItem ws.Cells(rowIndex, 1).value
ListBox1.List(ListBox1.ListCount - 1, 1) = ws.Cells(rowIndex, 2).value
ListBox1.List(ListBox1.ListCount - 1, 2) = ws.Cells(rowIndex, 3).value
'rowData = ws.Cells(rowIndex, 1).value & vbTab & ws.Cells(rowIndex, 2).value & vbTab & ws.Cells(rowIndex, 3).value
ListBox1.AddItem rowData
Next rowIndex
End Sub
c'est parce que je n'ai pas mis le bon fichier qu'on ne voit pas la liste box2
 

Pièces jointes

  • MaJ Label dans un USF V1 (11).xlsm
    222.9 KB · Affichages: 1

sousou

XLDnaute Barbatruc
Bonjour Flnte
Regarde ceci,
Tu n'as pas besoin d'utiliser les données de la feuille, mais simplement les données de la listbox, pour remplir tes textbx
 

Pièces jointes

  • MaJ Label dans un USF V1 (10).xlsm
    209.8 KB · Affichages: 4

Flnte

XLDnaute Junior
Merci de ton retour. J'ai avancé par contre j'ai un soucis avec le Listbox1 car je n'arrive pas à afficher dedans l'ensemble de colonne (je souhaite de A à F) . j'ai bien fais le rajout mais je n'ai que la collone A à D. Est-ce que tu vois où j'ai pu buggué?
VB:
Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Granit")
    Dim lastRow As Long
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    Dim rowIndex As Long
    For rowIndex = 2 To lastRow
        ListBox1.AddItem "" ' Ajoutez une ligne vide à la ListBox
        
        ' Ajoutez les valeurs des colonnes dans chaque colonne de la ListBox
        ListBox1.List(ListBox1.ListCount - 1, 0) = ws.Cells(rowIndex, 1).value
        ListBox1.List(ListBox1.ListCount - 1, 1) = ws.Cells(rowIndex, 2).value
        ListBox1.List(ListBox1.ListCount - 1, 2) = ws.Cells(rowIndex, 3).value
        ListBox1.List(ListBox1.ListCount - 1, 3) = ws.Cells(rowIndex, 4).value
        ListBox1.List(ListBox1.ListCount - 1, 4) = ws.Cells(rowIndex, 5).value
        ListBox1.List(ListBox1.ListCount - 1, 5) = ws.Cells(rowIndex, 6).value
    Next rowIndex
    
ListBox1.ColumnWidths = "100;50;50;50;50;50"
 

Pièces jointes

  • MaJ Label dans un USF V1 (13).xlsm
    213.9 KB · Affichages: 5

Statistiques des forums

Discussions
313 283
Messages
2 096 813
Membres
106 752
dernier inscrit
Tahiri1976