Bonjour,

Le but de ce code est de créer un lexique indexé. Les mots sont ajoutés puis triés par ordre alphabétique.
Pour la navigation rapide, j'ai créé une colonne qui reprend la première lettre du premier mot commençant par une nouvelle lettre. Ensuite, j'ai décidé d'utilisé un Combobox qui va référencer les lettres de l'alphabets présentes dans cette colonne. Mais je n'arrive pas à utiliser la fonction AddItem. (en ligne 34)

Je suis novice en vba, et en code tout court, donc il se peut que le code ne soit pas optimal. A vous de me le dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
Sub Sorting()
'
' Tri des mots et indexation
 
Dim i As Integer
Dim Alph As Object
 
If ActiveSheet.OLEObjects.Count < 1 Then
    With Range("K3")
    Set Alph = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combobox.1", Link:=False, DisplayAsIcon:=False)
    End With
End If
'crée la liste
 
 
If Not (IsEmpty(Range("E3")) Or IsEmpty(Range("E4"))) Then
 
    Rows("10:10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("B10").Value = Range("E3").Value
    Range("F10").Value = Range("E4").Value
    Range("E3:E4").ClearContents
'incrémente le lexique
 
    Range("B10:F300").Sort Key1:=Range("B10"), Order1:=xlAscending
'tri le lexique
 
    n = Application.WorksheetFunction.CountA(Range("B:B"))
    For i = 10 To (n + 9)
        If Left(Range("B" & i), 1) <> Left(Range("B" & i - 1), 1) Then
            Range("A" & i) = Left(Range("B" & i), 1)
        Else: Range("A" & i).ClearContents
        End If
        If Not IsEmpty(Range("A" & i)) Then Alph.AddItem Sheets("Sheet1").Range("A" & i)
 
    Next
'complète la liste
 
Else: Exit Sub
End If
 
End Sub
Merci