[RESOLU]Rechercher un Nom dans une feuille avec Macro et boite de dialogue

JBARBE

XLDnaute Barbatruc
Bonjour,

J'ai fait une macro qui ne fonctionne pas !

Code:
Private Sub CommandButton2_Click()
Dim i As Integer
 If UserForm1.TextBox1 = "" Then
   MsgBox " Vous avez oublié la saisie ", vbOKOnly
   Exit Sub
End If
Sheets("Recherche").Select
 For i = 1 To 30000
     If Cells(i, 1) = "" Then
     MsgBox " Le Nom n'existe pas ", vbOKOnly
     Exit Sub
     [B]ElseIf Cells(i, 1) = UserForm1.TextBox1 Then[/B] '''''''''''''Ne fonctionne pas ici !!!!
     Exit Sub
      Else
    i = i + 1
     End If
 Next i
 
End Sub

D'autre part j'aimerai que lorsque j’inscris le NOM dans la boite de dialogue celui-ci est anticipé comme avec le programme "gestion des anniversaires" de carcharodon-carcharias lorsqu'on clic sur "" Modifier les données d'une personne """ !!!

Lien supprimé

Merci à l'avance !
 

Pièces jointes

  • Recherche_Noms.xls
    67 KB · Affichages: 42
  • Recherche_Noms.xls
    67 KB · Affichages: 39
  • Recherche_Noms.xls
    67 KB · Affichages: 44
Dernière édition:

pedrag31

XLDnaute Occasionnel
Re : Rechercher un Nom dans une feuille avec Macro et boite de dialogue

Bonjour JBARBE, Bonjour le forum,

Un début de solution avec la fonction "Find" plus rapide que la boucle "For next"
Voir fichier joint.

Recherche partielle possible dans les noms, exple si on cherche "du" on retrouve deux noms "jean dupont" et "pierre dupont".

Bonne journée :)
 

Pièces jointes

  • Recherche_Noms.xls
    44 KB · Affichages: 54
  • Recherche_Noms.xls
    44 KB · Affichages: 53
  • Recherche_Noms.xls
    44 KB · Affichages: 52

Robert

XLDnaute Barbatruc
Repose en paix
Re : Rechercher un Nom dans une feuille avec Macro et boite de dialogue

Bonsoir JBarbe, Pedrag, bonsoir le forum,

En pièce jointe ton fichier modifié. J'ai utilisé comme Pedrag la méthode Find. Mais j'ai aussi rajouté une ListBox. Tu tapes et ça affiche la liste de toutes les mots qui contiennent ce que tu as tapé... D'un double-clic sur un élément de la liste tu l'atteins dans l'onglet Recherche.
Le code :
Code:
Private Sub TextBox1_Change() 'au changement dans la TextBox1
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (String)

Me.ListBox1.Clear 'vide la ListBox1
With Sheets("Recherche") 'prend en compte l'onglet "Recherche"
    Set r = .Columns(1).Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche r
    If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
        pa = r.Address 'définit l'adresse de la première occurrence trouvée
        Do 'éxécute
            With Me.ListBox1 'prend en compte la ListBox1
                .AddItem r.Value 'ajoute l'occurrence trouvé
                .Column(1, .ListCount - 1) = r.Row 'récupère le numéro de ligne de l'occurrence trouvée
            End With 'fin de la prise en compte de l'onglet "Recherche"
            Set r = .Columns(1).FindNext(r) 'redéfinit la recherche r (occurrence suivante)
        Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
    End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "Recherche"
End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'au double-clic dans un élément de la ListBox1
With Sheets("Recherche") 'prend en compte l'onglet "Recherche"
    .Select 'sélectionne l'onglet
    .Cells(Me.ListBox1.Column(1, Me.ListBox1.ListIndex), 1).Select 'sélectionne la cellule
End With 'fin de la prise en compte de l'onglet "Recherche"
Unload Me
End Sub

Note les propriétés ColumnCount et ColumnWidths de la ListBox1 qui permettent de stocker le numéro de ligne sans l'afficher...
Le Fichier :
 

Pièces jointes

  • Jbarbe_v01.xls
    60.5 KB · Affichages: 64
Dernière édition:

pedrag31

XLDnaute Occasionnel
Re : Rechercher un Nom dans une feuille avec Macro et boite de dialogue

Bonsoir Robert, JBARBE, le forum,

Joli boulot, la suppression des boutons est une très bonne idée, c'est plus convivial et plus efficace! :cool:
Ah la route est longue vers Barbatruc... ;)

Bonne soirée :)
 

JBARBE

XLDnaute Barbatruc
Re : Rechercher un Nom dans une feuille avec Macro et boite de dialogue

Merci pour la réponse mais ce n'est pas tout à fait ce que je souhaite !

D'une part je me suis trompé avec un Textbox et un Combo !

De fait, j'ai modifié ma macro et ma boite de dialogue !

Ma macro ne fonctionne pas parfaitement ( c'est du bricolage )!

Je voudrais que le Combo soit vide lorsque apparaît la boîte de dialogue et ainsi pouvoir trouver par quelques mots ma recherche ! La recherche doit être terminée sur le NOM recherché dans la feuille " Recherche "!

D'autre part, je souhaiterais que lorsque j'ajoute des NOMS, je n'ai pas à redimensionner la plage nommée pour la recherche !

Merci à l'avance et excusez pour ce désagrément !
 

Pièces jointes

  • Recherche_Noms.xls
    70 KB · Affichages: 44
  • Recherche_Noms.xls
    70 KB · Affichages: 45
  • Recherche_Noms.xls
    70 KB · Affichages: 45

JBARBE

XLDnaute Barbatruc
Re : Rechercher un Nom dans une feuille avec Macro et boite de dialogue

J'ai été pris de cours par le temps ( voir ma réponse précédente)!

Oui beau boulot ROBERT, j'en demandais pas tant! Mais c'est tout à fait ce que je souhaite et même plus !

Je vois qu'il est loin le temps où je pouvais programmer en Français SVP ! avec le livre VBA Excel 5 Editions ENI de Mai 1995 !!!

Que de chemins parcourus depuis !

Bonne soirée et encore MERCI !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 427
Messages
2 088 302
Membres
103 812
dernier inscrit
klcrabi