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.
Merci
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
Partager