Champ de Recherche via VB avec liens
Résolu
touroul
Messages postés
518
Statut
Membre
-
touroul Messages postés 518 Statut Membre -
touroul Messages postés 518 Statut Membre -
Bonjour le forum
J'aurais besoin d'un peu d'aide pour adapter une fonction créée au départ par "Mathier".
Il s'agit d'une fonction permettant de rechercher une valeur texte dans une feuille Excel.
J'ai trouvé pas mal de solutions dans le forum, mais jamais complètement ce que je cherche à faire.
Mais j'aurais besoin d'aide pour lui ajouter 3 fonctions :
- la recherche doit s'effectuer dans un classeur entier (et non dans une feuille comme là).
- indication du nom de la feuille contenant l’occurrence.
- j'aurais besoin de générer des liens hypertextes vers les résultats.
J'aime bien sa proposition, car en colonne C il affiche les résultats au fur-et-à-mesure de la saisie.
Est-ce faisable ?
Voici un lien vers mon fichier transformé :
Par avance merci pour votre aide.
J'aurais besoin d'un peu d'aide pour adapter une fonction créée au départ par "Mathier".
Il s'agit d'une fonction permettant de rechercher une valeur texte dans une feuille Excel.
J'ai trouvé pas mal de solutions dans le forum, mais jamais complètement ce que je cherche à faire.
Mais j'aurais besoin d'aide pour lui ajouter 3 fonctions :
- la recherche doit s'effectuer dans un classeur entier (et non dans une feuille comme là).
- indication du nom de la feuille contenant l’occurrence.
- j'aurais besoin de générer des liens hypertextes vers les résultats.
J'aime bien sa proposition, car en colonne C il affiche les résultats au fur-et-à-mesure de la saisie.
Est-ce faisable ?
Voici un lien vers mon fichier transformé :
https://www.cjoint.com/c/LDtr4SwJghj
Par avance merci pour votre aide.
Configuration: Windows / Excel 365
A voir également:
- Champ de Recherche via VB avec liens
- Partager des photos avec un lien - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Vérificateur de liens - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Vb - Télécharger - Langages
2 réponses
Bonjour,
Je t'ai mis le nom de la feuille et l'adresse du mot recherché. Avec cela tu peux facilement faire le lien hypertexte avec l'enregistreur de macro .
se déclenche au clic dans la listbox
Voilà, à toi de jouer
Je t'ai mis le nom de la feuille et l'adresse du mot recherché. Avec cela tu peux facilement faire le lien hypertexte avec l'enregistreur de macro .
se déclenche au clic dans la listbox
Option Compare Text
Dim nom As String
Dim DerniereLigneUtilisee As Long
Private Sub ListBox1_Click()
Dim i As Byte
'boucle sur les éléments de la listbox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then nom = ListBox1.List(i)
Next i
SearchAllSheets 'recherche dans toutes les feuilles
End Sub
Private Sub TextBox1_Change()
Application.ScreenUpdating = False
Range("A2:A24").Interior.ColorIndex = 2
ListBox1.Clear
If TextBox1 <> "" Then
For ligne = 2 To 24
If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
Cells(ligne, 1).Interior.ColorIndex = 43
ListBox1.AddItem Cells(ligne, 1)
End If
Next
End If
End Sub
Sub SearchAllSheets() 'recherche dans toutes les feuilles
'JE McGimpsey, mpep
Dim strSearchString As String
Dim ws As Worksheet
Dim foundCell As Range
Dim returnValue As Variant
Dim loopAddr As String
Dim countTot As Long
Dim counter As Long
strSearchString = nom
For Each ws In Worksheets
countTot = countTot + Application.CountIf( _
ws.UsedRange, "=" & strSearchString)
Next ws
If countTot = 0 Then
MsgBox strSearchString & " not found."
Else
counter = 0
For Each ws In Worksheets
With ws
.Activate
Set foundCell = .Cells.Find( _
What:=strSearchString, _
LookIn:=xlValues, _
LookAt:=xlPart)
If Not foundCell Is Nothing Then
loopAddr = foundCell.Address
Do
counter = counter + 1
foundCell.Activate
returnValue = MsgBox(ws.Name & " Found '" & strSearchString & _
"' at " & foundCell.Address & vbNewLine & _
"(" & counter & " of " & countTot & ")", _
vbOKCancel)
DerniereLigneUtilisee = Range("H" & Rows.Count).End(xlUp).Row + 1
Range("H" & DerniereLigneUtilisee).Value = ws.Name 'nom de la feuille
Range("I" & DerniereLigneUtilisee).Value = foundCell.Address 'adresse
If returnValue = vbCancel Then Exit For
Set foundCell = .Cells.FindNext( _
After:=foundCell)
Loop While Not foundCell Is Nothing And _
foundCell.Address <> loopAddr
End If
End With
Next ws
End If
End Sub 'SearchAllShee
Voilà, à toi de jouer
Bonjour LePivert
Un grand merci pour ton aide, c'est vraiment appréciable.
J'imagine que tu y as passé du temps, mais en effet ça fonctionne.
J'ai besoin d'un peu de temps pour adapter ça comme je veux, mais dans les grandes lignes j'ai compris, je vais adapter.
Pour les liens hypertextes, en effet je devrais arriver à me débrouiller.
Je marque en Résolu, mais si j'ai des soucis je reviendrai poster ici.
Bonne journée et merci encore.
Un grand merci pour ton aide, c'est vraiment appréciable.
J'imagine que tu y as passé du temps, mais en effet ça fonctionne.
J'ai besoin d'un peu de temps pour adapter ça comme je veux, mais dans les grandes lignes j'ai compris, je vais adapter.
Pour les liens hypertextes, en effet je devrais arriver à me débrouiller.
Je marque en Résolu, mais si j'ai des soucis je reviendrai poster ici.
Bonne journée et merci encore.