Salut =)
Et avec le code en entier, c'est suffisant ou il faut le fichier ?
Option Compare Text
Dim f, nomtableau, TBlBD()
Private Sub CommandButton1_Click()
Unload Me
VBAProject.FrmE.Show
End Sub
Private Sub UserForm_Initialize()
'AFFICHE LES QUESTION DANS L'ORDRE
TxbQ01 = Sheets("Compétences").Range("B2")
TxbQ02 = Sheets("Compétences").Range("B3")
TxbQ03 = Sheets("Compétences").Range("B4")
nomtableau = "TABL"
TBlBD = Range(nomtableau).Value
Me.ListBox1.List = TBlBD
Me.ListBox1.ColumnCount = 7
'--- ComboBox
Set d = CreateObject("scripting.dictionary")
d("*") = ""
For i = 1 To UBound(TBlBD): d(TBlBD(i, 7)) = "": Next i
Me.ComboBox1.List = d.keys
EnteteListBox
End Sub
Private Sub ComboBox1_Click()
ColRecherche = 7
clé = Me.ComboBox1: n = 0
Dim Tbl()
For i = 1 To UBound(TBlBD)
If TBlBD(i, ColRecherche) Like clé Then
n = n + 1: ReDim Preserve Tbl(1 To UBound(TBlBD, 2), 1 To n)
For k = 1 To UBound(TBlBD, 2): Tbl(k, n) = TBlBD(i, k): Next k
End If
Next i
If n > 0 Then Me.ListBox1.Column = Tbl Else Me.ListBox1.Clear
End Sub
Sub EnteteListBox()
x = Me.ListBox1.Left + 8
Y = Me.ListBox1.Top - 12
For i = 1 To 7
Set Lab = Me.Controls.Add("Forms.Label.1")
Lab.Caption = Range(nomtableau).Offset(-1).Item(1, i)
Lab.Top = Y
Lab.Left = x
Lab.Height = 24
Lab.Width = Range(nomtableau).Columns(i).Width * 1#
x = x + Range("TABL").Columns(i).Width * 1
tempCol = tempCol & Range(nomtableau).Columns(i).Width * 1# & ";"
Next
tempCol = Left(tempCol, Len(tempCol) - 1)
Me.ListBox1.ColumnWidths = tempCol
End Sub
Private Sub BtnRet_Click()
'BOUTON RETOUR PRE ACCUEIL
Unload Me
VBAProject.FrmBac.Show
End Sub
Private Sub BtnLis_Click()
'BOUTON LISTE DES SALARIÉS
Unload Me
VBAProject.FrmD2L.Show
End Sub
Private Sub BtnQui_Click()
'BOUTON QUITTER
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.Quit
End Sub
Private Sub ComboBox1_Change()
'RENVOI LA VALEUR DE LA TXTBOX EN A2 DE LA SHEET SELECTION
Sheets("Selection").[D5].Value = ComboBox1.Text
TxbNb = Sheets("Selection").Range("E5")
End Sub
Private Sub ListBox1_Click()
Me.TextBox1 = Me.ListBox1.Column(1) ' 2e colonne
Me.TextBox1 = Me.ListBox1.List(, 1) ' 2e colonne
Me.TextBox2 = Me.ListBox1.Column(2) ' 3 colonne
Me.TextBox2 = Me.ListBox1.List(, 2) ' 3e colonne
End Sub