Modification script VBA pour ignorant

pataboat

XLDnaute Nouveau
Bonjour à tous,

Je suis totalement ignorant concernant la programmation et le VBA.

J'avais besoin d'un carnet d'adresse et je n'ai pas trouvé mon bonheur sur la toile, mais après recherche,
j'ai trouvé un petit tuto pour le faire moi-même sous excel et tout marche très bien avec un masque pour la saisie
et une fonction de recherche sur les noms (colonne A) tout ça avec 2 boutons (nouveau contact et recherche).
J'aimerais rajouter une fonction recherche sur les N° de téléphone (qui sont en colonne D).
Que faut-il modifier au script de ma fonction "recherche par nom" pour qu'il fonctionne pour mes N° tel (format ** ** ** ** ** )

Merci de votre aide

Le script de ma recherche par noms :



VB:
Function Rechercher(Recherche As String, ZoneRecherche As Variant) As Range
Dim CellulesTrouvees As Range

Set CellulesTrouvees = ZoneRecherche.Find(What:=Recherche, After:=ActiveCell, LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)

If CellulesTrouvees Is Nothing Then
   Set Rechercher = Nothing
Else
   Set Rechercher = CellulesTrouvees
End If

End Function

Private Sub cmdrechercher_Click()

Dim Recherche As String
Dim ZoneRecherche, CellulesTrouvees As Range
Dim LastRow As Long
    
    LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
    
    Recherche = txtrecherche.Text
    
    Set ZoneRecherche = ActiveSheet.Range("A3:A" & LastRow)
    
    Set CellulesTrouvees = Rechercher(Recherche, ZoneRecherche)
    
If CellulesTrouvees Is Nothing Then

     MsgBox "Aucun résultat trouvé!", vbInformation, "Résultat de la recherche"
     
Else

     CellulesTrouvees.Select
End If

     
End Sub
 

Pièces jointes

  • ESSAI CARNET D'ADRESSES .xlsm
    39.7 KB · Affichages: 48
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Modification script VBA pour ignorant

Bonsoir à tous

pataboat (Bienvenue sur le forum)
Je suis totalement ignorant concernant la programmation et le VBA.
On a tous débuté un jour ;)
Par contre, tout comme moi, il y a bien longtemps que tu sais lire maintenant, non ? :rolleyes:
NouvelleDiscuss.jpg
Donc désormais tu sauras quoi faire quand tu crées une discussion ;)
 

Pièces jointes

  • NouvelleDiscuss.jpg
    NouvelleDiscuss.jpg
    38.4 KB · Affichages: 90
  • NouvelleDiscuss.jpg
    NouvelleDiscuss.jpg
    38.4 KB · Affichages: 92

pataboat

XLDnaute Nouveau
Re : Modification script VBA pour ignorant

Désolé Staple, mais ........... je t'avais dit que j'étais ignorant ! :D Bon, il est vrai que j'ai lu LA CHARTE un peu en diagonale et je m'en excuse , je prends donc note et ferai mieux la prochaine fois. En attendant, je modifie mon 1er message.
Merci à tous de votre patience :cool: (Je suis un peu vieux, ne me tapez pas sur la tête :D:D)
 
Dernière édition:

pataboat

XLDnaute Nouveau
Re : Modification script VBA pour ignorant

Bonjour
Une idée à piocher

Merci beaucoup st007, mais dans ton répertoire, c'est justement la recherche par N° de Tel qui ne fonctionne pas ! ( ça fonctionne seulement avec les 2 premiers chiffres) mais j'ai bien compris que l'idée était à piocher, alors j' essaie de voir pourquoi mais.......:confused:
A noter: J'ai modifié mon premier message pour plus de compréhension
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Modification script VBA pour ignorant

Bonsoir à tous

pataboat
Avec ces modifs cela semble OK
Mettre cette version modifiée de ta fonction dans un module standard (pas dans un userform)
(cela implique de supprimer l'ancienne dans ton code)
Code:
Public Function Rechercher(Recherche As String, ZoneRecherche As Variant, Optional NTel As Boolean = False) As Range
Dim CellulesTrouvees As Range
If NTel Then Application.FindFormat.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
Set CellulesTrouvees = _
    ZoneRecherche.Find(What:=Recherche, After:=ActiveCell, _
    LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If CellulesTrouvees Is Nothing Then
   Set Rechercher = Nothing
Else
   Set Rechercher = CellulesTrouvees
End If
End Function
Et mettre ce code pour le bouton Recherche Mobile dans l'userform frmrecherchemobile
Code:
Private Sub cmdrecherchemobile_Click()
Dim Recherche$, ZoneRecherche As Range, X As Range, LastRow&
LastRow = ActiveSheet.Range("E" & Rows.Count).End(xlUp).Row
Recherche = txtrecherchemobile.Value
Set ZoneRecherche = ActiveSheet.Range("E3:E" & LastRow)
Set X = Rechercher(Recherche, ZoneRecherche, True)
If X Is Nothing Then
    MsgBox "Aucun résultat trouvé!", vbInformation, "Résultat de la recherche"
    Else
    X.Select
End If
End Sub
Test OK sur Excel 2013
je te laisse faire les ajouts nécessaires pour la recherche téléphone fixe
(NB: Il n' y aura que le code cmdrecherchefixe_Click à faire )
 

pataboat

XLDnaute Nouveau
Re : Modification script VBA pour ignorant

Donc effectivement cela fonctionne, hors mis le "format téléphone" dans ma TextBox , j' ai donc rajouté:

VB:
        'Mettre au format téléphone Ex.02 33 57 69 42'
Private Sub txtrecherchemobile_Change()
txtrecherchemobile.Value = Format(txtrecherchemobile.Value, "0#"" ""##"" ""##"" ""##"" ""##")
End Sub

Je ne sais pas si c'est très catholique mais sa fonctionne. Par contre les 00 00 00 00 00 apparaissent lors de la saisie, peut-on l'éviter ?

Merci encore
 
Dernière édition:

pataboat

XLDnaute Nouveau
Re : Modification script VBA pour ignorant

Finalement j'ai une autre question

VB:
Private Sub cmdBoutonMobile_Click()
 
 Dim Recherche As String
 Dim ZoneRecherche, CellulesTrouvees As Range
 Dim LastRoW As Long
 LastRoW = ActiveSheet.Range("E" & Rows.Count).End(xlUp).Row
 Recherche = txtBoxMobile.Value
 Set ZoneRecherche = ActiveSheet.Range("E3:E" & LastRoW)
 Set CellulesTrouvees = Rechercher(Recherche, ZoneRecherche)
  
  If txtBoxMobile.Text = "" Then
        MsgBox "Vous devez entrer un numero."
        Range("E3").Select
       Me.txtBoxMobile.SetFocus
     Else
     
     
   If CellulesTrouvees Is Nothing Then
     Range("E3").Select
     MsgBox "Aucun résultat trouvé!", vbInformation, "Résultat de la recherche"
         txtBoxMobile.Text = ""
         Me.txtBoxMobile.SetFocus
     Else
     
    CellulesTrouvees .Select
     

      
 End If
 End If
 End Sub


Est-il possible d'avoir comme résultat, la ligne entière ( de façon à l'avoir en surbrillance bleu ) plutôt que "cellulesTrouvees.Select"

Merci de votre réponse
 
Dernière édition:

pataboat

XLDnaute Nouveau
Re : Modification script VBA pour ignorant

Bonsoir Staple et merci de ta réponse.

Effectivement ça fonctionne mais ça me ramène le curseur en colonne A de la ligne "cellulestrouvees"

Y a-t-il un moyen de laisser le curseur dans "cellulestrouvees" afin de continuer la recherche là ou elle s'est arrêtée

Merci de ta patience
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
110

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 812
dernier inscrit
abdouami