Bonjour le forum
Voilà mon problème. J'utilise un code VBA trouvé sur le site de Boisgontier Jacques qui fonctionne très bien à un détail près
Si dans une cellule il y a un trop grand nombre de caractère il est impossible d'effectuer l'initialisation du Userform. J'ai un code erreur exécution 13 : Incompatibilité de type.
L'erreur arrive à l’exécution de cette ligne :
Titre = Application.Index(Rng.Offset(-1).Value, 1)
Voilà le code complet :
Option Compare Text
Dim f, NomTableau, BD, Titre(), TabBD(), ColCombo(), colVisu(), NcolVisu, NcolBD, Decal, NbCol, choix(), témoin
Private Sub UserForm_Initialize()
Set f = Sheets("Feuil1")
Set Rng = f.Range("A2:AG" & f.[A65000].End(xlUp).Row) ' à adapter
Titre = Application.Index(Rng.Offset(-1).Value, 1) ' Titres de la BD
NomTableau = "Tableau1"
ActiveWorkbook.Names.Add Name:=NomTableau, RefersTo:=Rng
'B_tout_Click
NbCol = Range(NomTableau).Columns.Count
TabBD = Range(NomTableau).Resize(, NbCol + 1).Value ' Array: + rapide
For i = 1 To UBound(TabBD): TabBD(i, NbCol + 1) = i: Next i ' No enregistrement
'---- A adapter
colVisu = Array(1, 2, 3, 4, 5, 6, 7, 9, 12, 13) ' Colonnnes ListBox (à adapter)
'----
Me.ListBox1.List = TabBD
'-- en têtes de colonne ListBox
Me.ListBox1.ColumnCount = NbCol + 1
'EnteteListBox ' supprimer version Excel 2013
'-- labels textbox
'LabelsTextBox
' For i = NbCol + 1 To 35: Me("textbox" & i).Visible = False: Next i
'-- colTri
Me.ComboTri.List = Application.Transpose(Range(NomTableau).Offset(-1).Resize(1)) ' Ordre tri
Me.ComboChoixCol.List = Me.ComboTri.List
témoin = True
Me.ComboChoixCol.ListIndex = 0
'Affiche
'B_ajout_Click
End Sub
Merci par avance à l’intérêt porté à ce sujet