ReDim Preserve Tablo(1 To
Private Sub UserForm_Initialize()
Dim Tablo()
With Sheets("Repertoire")
For i = 1 To .Range("A65536").End(xlUp).Row - 2
ReDim Preserve Tablo(1 To i)
Tablo(i) = .Cells(i + 2, 1)
Next
End With
For i = 1 To UBound(Tablo)
For j = 1 To UBound(Tablo)
If Tablo(i) < Tablo(j) Then
temp = Tablo(i)
Tablo(i) = Tablo(j)
Tablo(j) = temp
End If
Next j
Next i
For Itm = 1 To UBound(Tablo)
Me.ComboBox1.AddItem Tablo(Itm)
Next
End Sub
...si tu reprends mon premier fichier le tablo était bien déclaré dans l'initialyse
Re,
Je te remercie mais j'ai toujours un problème si je prends un nom au hasard sur les autre textBox sa ne coïncide pas j'ai deux ou 3 ligne de decallage
@+
Max
Tablo = Range("A:A").SpecialCells(xlCellTypeConstants)
With Range("IV1").Resize(UBound(Tablo), 1): .Value = Tablo: .Sort key1:=Range("IV1"): Me.ComboBox1.List = Application.Transpose(.Value): .Clear: End With
Tablo = Application.Transpose(Range("A:A").SpecialCells(xlCellTypeConstants))
For i = 1 To UBound(Tablo)
For j = 1 To UBound(Tablo)
If Tablo(i) < Tablo(j) Then
temp = Tablo(i): Tablo(i) = Tablo(j): Tablo(j) = temp
End If
Next j
Next i
Me.ComboBox1.List = Tablo
Allez c'est ma journée de bonté
Dim Cell As Range, derlg As Long
Application.ScreenUpdating = False
With Sheets("Repertoire")
derlg = .Range("A65536").End(xlUp).Row
.Range("AA3:AI" & derlg).Value = .Range("A3:I" & derlg).Value
.Range("AA3:AI" & derlg).Sort Key1:=Range("AA3"), Order1:=xlAscending, Key2:=Range("AB3" _
), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
For Each Cell In .Range("AA3:AA" & derlg)
Me.ComboBox1.AddItem (Cell)
Next
End With
Application.ScreenUpdating = True
Re
papou sur ton code il n'y a aucun décalage et sa marche mais peut tu m'expliquer pourquoi tu as codé sur les colonne AA à AI alors que moi je travail dans les colonne "A à J"
@+
Private Sub UserForm_Initialize()
Tablo = Sheets("Repertoire").Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
For i = 1 To UBound(Tablo)
For j = 1 To UBound(Tablo)
If Tablo(i, 1) < Tablo(j, 1) Then
temp = Tablo(i, 1)
Tablo(i, 1) = Tablo(j, 1)
Tablo(j, 1) = temp
End If
Next j
Next i
Me.ComboBox1.List = Tablo
End Sub