Problême avec alimentation mutipage
bonjour a tous et toutes
pour un exercice personnel je voudrais savoir comment faire avec un multipage sur un userform
ce multipage a 3 pages pour l'instant, avec chacune un listbox dessus
je voudrais qu"a l'ouverture de l'userform le listbox 1 -2-3 qui auront chacun un nom précis après
puisse se charger des données qui sont agencées identiquement dans chaque feuille
ces feuilles pour corser le tout seront dans un dossiers sur D:\test\ avec dedans les feuilles en sous dossiers et chacune avec un nom précis
j'ai ce code qui repli correctement la 1ère page mais en dur pas sur D:\ mais pour les autres c'est une autre histoire car elles se remplisse toutes des données de la même feuilles
Option Explicit
Sub ChargementListBox1()
'nettoyage
ListBox1.Clear
With ListBox1
'source des données sur le feuille
.RowSource = "B1:F1234"
'affichage entête colonne
.ColumnHeads = False 'où true
'nombre de colonne
.ColumnCount = 5
'largeur de la colonne
.ColumnWidths = "50;50;50;50;50"
End With
End Sub
Private Sub UserForm_Activate()
'activation du chargement de la listbox
Call ChargementListBox1
End Sub
et le tout est lancer par un bouton sur feuille car il doit n'y a avoir qu'une feuille en tout
je viens de préparer un exemple sans feuilles sur D:\
Bonjour,
Avec 3 classeurs ... à dézipper en D:
À tester si j'ai bien compris...
Gelinotte
gelinotte a écrit :Bonjour,
Avec 3 classeurs ... à dézipper en D:
À tester si j'ai bien compris...
Gelinotte
bonjour Gelinotte
merci beaucoup
tu as tout compris
maintenant je voudrais que le clic dans la listbox de chacune des pages envoi la ligne dans les textbox
j'ai bien mis un code qui fonctionne sauf que je n'arrive a vider les textbox au changement de page
les listbox se charge très bien
et je n'ai pas envie d'alourdir le test en créant des textbox a toutes les pages
Private Sub UserForm_Initialize()
Dim Wb As Workbook
Dim Ws As Worksheet
Dim A As Byte, B As Byte, C As Byte, D As Byte, E As Byte
Dim X As Integer
For X = 1 To 3
Set Wb = Workbooks.Open("D:\Test\LB_" & X & ".xlsx")
Set Wb = Workbooks("LB_" & X & ".xlsx")
Set Ws = Worksheets(1)
'nettoyage
Me.Controls("ListBox" & X).Clear
A = 2 'colonne B
B = 3 'colonne C
C = 4 'colonne D
D = 5 'colonne E
E = 6 'colonne F
With Me.Controls("ListBox" & X)
.List() = Ws.Range(Ws.Cells(1, A), Ws.Cells(1234, E)).Value
'affichage entête colonne
.ColumnHeads = False 'où true
'nombre de colonne
.ColumnCount = 5
'largeur de la colonne
.ColumnWidths = "50;250;50;50;50"
End With
Wb.Close
Next X
End Sub
Private Sub ListBox1_Click()
With ListBox1
'charger les textbox au clic sur une ligne du textbox
TextBox1 = .List(.ListIndex, 0) 'règlage des textbox de réception
TextBox2 = .List(.ListIndex, 1)
TextBox3 = .List(.ListIndex, 2)
TextBox4 = .List(.ListIndex, 3)
'TextBox5 = .List(.ListIndex, 4)
End With
End Sub
Private Sub ListBox2_Click()
With ListBox1
'charger les textbox au clic sur une ligne du textbox
TextBox1 = .List(.ListIndex, 0) 'règlage des textbox de réception
TextBox2 = .List(.ListIndex, 1)
TextBox3 = .List(.ListIndex, 2)
TextBox4 = .List(.ListIndex, 3)
'TextBox5 = .List(.ListIndex, 4)
End With
End Sub
Private Sub ListBox3_Click()
With ListBox1
'charger les textbox au clic sur une ligne du textbox
TextBox1 = .List(.ListIndex, 0) 'règlage des textbox de réception
TextBox2 = .List(.ListIndex, 1)
TextBox3 = .List(.ListIndex, 2)
TextBox4 = .List(.ListIndex, 3)
'TextBox5 = .List(.ListIndex, 4)
End With
End Sub
tel quel avec ce code j'ai toujours le contenu de la LB_1 t dans les textbox
bonjour Gélinotte
merci
je devais pas être bien réveillé car j'ai laissé a chaque fois "with listbox1" dans les 3 codes
merci beaucoup
Pascal