Recherche d'un mot: fonctionnaire dictionnaire

  • Initiateur de la discussion Initiateur de la discussion tralufr
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tralufr

XLDnaute Nouveau
Bonjour,

j'ai élaboré un fichier avec plusieurs onglets (nommé A,B, C...comme un dictionnaire) sachant que dans chaque onglet j'ai recensé les mots qui commencent par la lettre (Onglet A: tous les mots commençant par la lettre A).
Je voudrais dans un 1er onglet en renseigant un mot que je cherche, qu'excel :
- cherche dans les onglet et qu'il m'envois directement dans l'onglet dans lequel se trouve le mot et idéalement sur la ligne du mot,
- et qu'il m'indique par un message "le mot recherché n'existe pas", lorsque ce mot ne se trouve pas dans aucun onglet.

J'ai essayé de reprendre des macro existantes, mais sans succès.

Merci par avance pour votre aide.
 
Re : Recherche d'un mot: fonctionnaire dictionnaire

Bonsoir Tralufr, bonsoir le forum,

Je te propose la macro suivante que tu devras adapter à ton cas :

Code:
Sub Macro1()
 
Dim m As String 'déclare la variable m (Mot)
Dim p As String 'déclare la variable p (Premère lettre du mot m)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
 
m = InputBox("Tapez le mot à rechercher.", "Recherche") 'définit la variable m
If m = "" Then Exit Sub 'si la boite de texte n'est pas renseignée, sort de la procédure
p = UCase(Left(m, 1)) 'définit la variable p (Première lettre (en majuscule) du mot m
On Error GoTo fin 'gestion des erreurs via l'étiquette "fin"
Sheets(p).Select 'sélectionne l'onglet correspondant à la première lettre du mot m
 
With Sheets(p) 'prend en compte l'onglet p
    Set pl = .Range("A1:A" & .Range("A65536").End(xlUp).Row) 'définit la plage pl (colonne A)
End With 'fin de la prise en com pte de l'onglet p
 
With pl 'prend en comprte la plage pl
    'remplacer "xlPart" par "xlWhole" si on veut une recherche sur le mot complet m
    Set r = .Find(m, , xlValues, xlPart) 'définit la variable r (recherche un mot CONTENANT le mot m)
 
    If Not r Is Nothing Then 'condition : s'il il existe au moins une occurrence trouvée de m
        r.Select 'sélectionne la cellule r
    Else 'sinon
        MsgBox "Le mot recherché n'existe pas ! " 'message
    End If 'fin de la condition
 
End With 'fin de la prise en compte de la plage pl
Exit Sub 'sort de la procédure
 
fin: 'étiquette
MsgBox "Le premier caractère du mot édité n'est pas une lettre de l'alphabet ! Recommencez."
End Sub
 
Re : Recherche d'un mot: fonctionnaire dictionnaire

Bonjour,

Code:
Private Sub B_ok_Click()
   If Me.TextBox1 = "" Then Exit Sub
   Application.DisplayAlerts = False
   On Error Resume Next
   Sheets("Temp").Delete
   On Error GoTo 0
   Sheets.Add after:=Sheets(Sheets.Count)
   ActiveSheet.Name = "Temp"
   '--
   ligne = 2
   For i = 1 To Sheets.Count - 1
    With Sheets(i).Cells
      Set c = .Find(Me.TextBox1, LookIn:=xlValues, LookAt:=xlWhole)
      If Not c Is Nothing Then
           Sheets("temp").Hyperlinks.Add Anchor:=Sheets("temp").Cells(ligne, 1), _
           Address:="", SubAddress:="'" & Sheets(i).Name & "'" & "!" & c.Address, TextToDisplay:=Sheets(i).Name
           Cells(ligne, 2) = Sheets(i).Name
           Cells(ligne, 3) = c.Address
           Cells(ligne, 1).Resize(1, 3).Interior.ColorIndex = 33
           ligne = ligne + 1
      End If
    End With
   Next i
End Sub

JB
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
621
Réponses
6
Affichages
716
  • Question Question
Microsoft 365 recherche idée
Réponses
6
Affichages
817
Retour