Glossaire acronymes, recherche automatique
Bonjour,
Je sollicite votre aide au sujet d'une macro que je n'arrive pas à finaliser.
Débutant dans un nouveau secteur où il y a pléthore d'acronymes et j'aimerais les répertorier dans une feuille Excel.
Je vous préviens, mais connaissances en VBA sont quasi nulles, j'ai juste quelques notions de codage (langage C) qui remontent maintenant à 3-4 ans...
En cherchant sur le net et notamment sur ce forum, j'ai trouvé un début de solution grâce à une feuille de calcul d'un certain dubois :
https://forum.excel-pratique.com/excel/creer-un-dictionnaire-bilingue-sous-excel-t19513.html
Il s'agit de la feuille intitulée "Traducteur2.xls"
Le sujet datant de 2010 et n'étant pas exactement le même que le mien, je me suis permis d'en créer un nouveau.
Certaines fonctionnalités du précédent fichier ne m'intéressent pas :
- L'échange de colonne entre les 2 langues
- Les définitions
- la colonne ecriture...
En bidouillant un peu, je suis parvenu à une version plus épurée (dispo en PJ). J'arrive à créer de nouvelles entrées et une macro me permet de classer ces entrées dans l'ordre alphabétique.
Cependant, lorsque je veux rechercher une entrée, cela se complique... Lorsque j'entre une lettre ou un acronyme dans la case de recherche, la cellule cible s'affiche dans une cellule (b1) et correspond au résultat attendu. Mais j'aimerais que cela me renvoie automatiquement à la ligne correspondante (ce qui est le cas avec le fichier initial).
Dans l'idéal, j'aimerais également que seule la ligne cible se surligne.
En espérant avoir été suffisamment clair....
Merci
Bonjour et bienvenu(e)
Il ne faut pas modifier le nom des macros événementielles
Option Explicit
Public Flag As Boolean, Ecrit As Boolean
Sub AllerEn()
Flag = True
Application.ScreenUpdating = False
Range(Range("B1").Value).Select
Range("Base").Interior.ColorIndex = xlNone
Application.Goto ActiveCell.Offset(0, -2), Scroll:=True
Flag = False
End Sub
Sub Classer()
Dim Lg%
Lg = Range("c65536").End(xlUp).Row
Flag = True
Application.ScreenUpdating = False
Application.CutCopyMode = False
Range("c6:d" & Lg).Name = "Base"
Range("c6:c" & Lg).Name = "Col_C"
Range("c6:c" & Lg).Name = "Mots"
'---- tri ----
Range("Base").Sort Key1:=Range("c6"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("b1") = "=""C""&MATCH(CONCATENATE(c3,""*""),Col_C,0)+5"
Range("c3").Interior.ColorIndex = 15
Flag = False
Range("c4:d4").ClearContents
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'Sub Change()
If Flag Then Exit Sub
If Not Application.Intersect(Target, Range("c3")) Is Nothing Then
If IsError(Range("b1")) Then
MsgBox ("non référencé !")
Exit Sub
End If
Call AllerEn
End If
Range("c3").Activate
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Sub SelectionChange()
If Flag Then Exit Sub
If Not Application.Intersect(Target, Range("mots")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Flag = True
Range("Mots").Interior.ColorIndex = xlNone
Cells(2, 3) = Cells(Target.Row, 3)
Cells(2, 3).Activate
Cells(3, 3) = Cells(Target.Row, 5)
Target.Interior.ColorIndex = 15
End If
Flag = False
End SubBonjour Banzai64,
Je te remercie pour ta réponse claire et rapide, cela fonctionne à merveille.
Tout ça m'a donné envie d'apprendre à coder sur excel, je vais m'y mettre sérieusement d'autant plus qu'il y a des cours de dispo sur ce site.
Bonne soirée !