XL 2019 Affichage dans listbox et reprise dans les textbox

  • Initiateur de la discussion Initiateur de la discussion Flnte
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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...
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

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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
16
Affichages
827
Réponses
7
Affichages
428
Retour