Difficulté d'affichage d'un Resultat de recherche dans un label

Résolu/Fermé
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018 - Modifié par crapoulou le 27/11/2016 à 22:58
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 29 nov. 2016 à 09:17
Bonjour,
Je souhaiterai avoir la solution pour l'impasse suivante:
click sur label1-UserForm4 (L1U4)
Affichage MsgBox "Mot ou Phrase à Chercher"
On tape ce qu'on doit chercher ----OK
La recherche doit se faire dans un classeur "GESTACHAT17D récent.xlsm" à plusieurs feuilles
Resultat:
1- Affichage du Nbres d'éléments Trouvés dans Label1 UserForm6 (L1U6)
2- Affichage "dans Label1 UserForm6" des cellules Trouvées avec leurs lignes corespondantes
________________________________________________________________

Private Sub Label11_Click()

Dim rech As String 'recherche d'une chaine
rech = InputBox("Mot à rechercher?", , "")
Dim Cel As Range   ' cellule trouvée
Dim c As Integer    ' colonne
Dim F As Integer   'Feuille
Dim l As Long       ' ligne
Dim n As String   ' éléments trouvés
n = 0
For F = 1 To Sheets.Count 'boucle Feuilles
With Sheets(F)
    l = 1: c = 1
     Do        ' recherche

Set Cel = .Cells.Find(What:=rech, after:=.Cells(1, 1), _
        LookIn:=xlValues, LookAt:=xlPart, _
        SearchOrder:=xlByRows, _
            SearchDirection:=xlNext, MatchCase:=False)

If Cel Is Nothing Then Exit Do
    If Cel.Column <= c And Cel.Column <= l Then Exit Do
        c = Cel.Column
        l = Cel.ROW
        n = n + 1       ' élément trouvé : traitement

Loop

End With

Next F
UserForm6.Label1.Caption = n & "éléments Trouvés"

End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.


A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
28 nov. 2016 à 09:15
Bonjour

If Cel.Column <= c And Cel.Column <= l  

ne serait ce pas plutôt row?

Mais pour trouver le nombre de fois où "toto" apparait dans une feuille, on pourrait peut-^tre simplifier
nbre = Sheets(F).Application.CountIf(Cells, "*" & "toto" & "*")
Total = Total + nbre
--
 Michel
0
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018
28 nov. 2016 à 18:12
Merci Michel,
Je veux juste attirer ton attention que le code affiché est bon
J'ai sur mon UserForm6.Label1 le Nbre "éléments Trouvés.
ce qui manque c'est afficher ces éléments dans cet UserForm6.Label1
Et Chaque élément doit être afficher avec sa ligne qui comprend toutes les colonnes
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié par eriiic le 28/11/2016 à 19:15
Bonjour,

Tu pourrais prendre en compte les remarques de michel frappées au coin du bon sens.
Je sens que tu auras l'aide minimale, tu devras faire des recherches...
un label est une simple étiquette.
Pour afficher plusieurs lignes-colonnes il faut utiliser un autre contrôle.
eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
29 nov. 2016 à 09:17
Salut Eric

Puisque Devplus me fait remarquer que ma proposition d'aide est inutile car LUI sait faire parfaitement des macros, pourquoi veut il de l'aide ?

Quel génie, ce Devplus !!!
0