Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userfom recherche mot cle

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 !

nina71287

XLDnaute Occasionnel
bonjour,

si quelqu'un peut m'aider svp

_j'ai des doublons dans ma liste de resultats de recherche du mot clé je ne sais pas à quelle erreur cela est due
_je n'arrive pas à afficher un msgbox en fonction du bouton d'option cliquer dans un frame

ci joint le fichier avec quelques explications supplémentaires des points qui ne marche pas
Cijoint.fr - Service gratuit de dépôt de fichiers
merci bonne journée
 
Re : Userfom recherche mot cle

le nombre d' boutons d'options et leur texte dependent du contenu de ma feuille "Act_tach_def" il faut lancer l'userform pour visualiser mes boutons d'options ils sont creer dynamiquement
 
Re : Userfom recherche mot cle

bonsoir,

j'ai résolu un de mes deux problèmes:

pour afficher des infobulles quand on clique sur un boutons d'option c'est "ControlTipText" c'etait tout bete en fait en revanche je bute tjrs sur mon recherche de mot clé qui me donne des doublons et des resultats faux... merci pour votre aide bonne soirée
 
Re : Userfom recherche mot cle

Bonsoir

Ci joint le fichier avec un début de solution pour les "OptionButtons".
Utilisation d'un module de classe.

En cliquant sur un bouton affichage d'un message.
Pour afficher un message en fonction du bouton, il suffit d'utiliser la propriété "TAG", propriété initialisée à la création et lue quand on clique sur le bouton.


Doublons.
Find recherche suivant le paramétrage les données en ligne ou en colonnes.

Il faut pour éviter des doublons faire une recherche par ligne, si find trouve une valeur il faut mémoriser le numéro de ligne.
Quand find trouve la valeur suivante on vérifie que la donnée trouvée n'est pas dans la même ligne que la valeur précédente.
Si oui on n'ajoute pas la valeur si non on ajoute la valeur et on mémorise la ligne.


Une question les recherches se font sur quelles zones.

Un exemple de recherche avec find
https://www.excel-downloads.com/threads/recherche-avec-listview.117807/

JP
 

Pièces jointes

Dernière édition:
Re : Userfom recherche mot cle

bonsoir JP 14,

merci pr ta réponse j'ai essayé ton fichier mais je n'arrive pas à le faire focntionner ai je quelque chose à faire avant de lancer mon userform car quand je le lance les options buttons ne s'affichent pas voici de mon coté ce que j'ai fait j'ai solutionner mon probleme en rajoutant des infobulles lors du survol de la souris mais visuellement ce n'est pas terrible. si tu pouvais m'indiquer comment tester ton fichier merci
 

Pièces jointes

Re : Userfom recherche mot cle

Bonjour


J'ai allégé le fichier.
Il faut recopier les modifications indiqués dans la feuille1 dans ton fichier , en cas de doute voir le code dans les procédures.
Les infobulles n'implique pas d'action au niveau de l'utilisateur, contrairement à un message, ou l'opérateur doit cliquer sur un bouton.

JP
 
Dernière édition:
Re : Userfom recherche mot cle

Bonsoir

Ci dessous le code pour le mode recherche.
J'ai modifié le code en supprimant les parties inutiles.
Le dysfonctionnement provenait de la plage, en particulier plage.Cells(c.Row, 1), comme la plage commence à la ligne 2, les données affichées dans la listbox correspondent à la ligne suivante de la ligne trouvé par find.

Code:
'mot clef
Private Sub B_ok_Click()
With Me.ListBox2
.Clear
i = 0
Set plage = f.Range("a2:a" & f.Cells(Rows.Count, 1).End(xlUp).Row)
Set c = plage.Find(Me.MotCle, , , xlPart)
If Not c Is Nothing Then
    premier = c.Address
    Do
        Trouve = True
        .AddItem f.Cells(c.Row, 1)
        .List(.ListCount - 1, 1) = c.Row
        Set c = plage.FindNext(c)
    Loop While Not c Is Nothing And c.Address <> premier
End If
If Trouve = False Then
    Call MsgBox("" & "" _
          & vbCrLf & "Non trouvé" _
          , vbInformation, Application.Name)
    Exit Sub
End If
pointeur = 0
LIGNE:   LIGNE = Me.ListBox2.List(pointeur, 1)
Affiche
End With
End Sub



'recherche par référence
Private Sub B_ok2_Click()
With Me.ListBox2
 .Clear
  i = 0
  
  Set plage = f.Range("b2:b" & f.Cells(Rows.Count, 2).End(xlUp).Row)
  'expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
'Set c = plage.Find(Me.Reference, , ,xlPart xlValue, xlByColumns)
  Set c = plage.Find(Me.Reference, , , xlWhole, xlByColumns)
  If Not c Is Nothing Then
    premier = c.Address
    Do
      Trouve = True
      
      .AddItem f.Cells(c.Row, 1)
      .List(.ListCount - 1, 1) = c.Row
      
      Set c = plage.FindNext(c)
     Loop While Not c Is Nothing And c.Address <> premier
     End If
     If Trouve = False Then
Call MsgBox("" & "" _
            & vbCrLf & "Non trouvé" _
            , vbInformation, Application.Name)
    Exit Sub
End If
   pointeur = 0
LIGNE: LIGNE = Me.ListBox2.List(pointeur, 1)
Affiche
End With
End Sub

A tester

JP
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…