IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro recherche avec mise en couleur des mots clefs


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut Macro recherche avec mise en couleur des mots clefs
    Bonjour,

    Je cherche aussi cette fonctionnalité mais sur la réponse donnée précédemment, ça manque cruellement d'explication. Une novice comme moi ne se retrouve pas. Pourriez-vous indiquer la démarche.

    Mon but avec ce genre de macro est que sur une feuille1, il y a 2 cellules que je souhaite renseigner (l'une ou autre ou les 2) pour ma recherche, ainsi cette dernière se fera dans la feuille 2 et dès que le résultat est trouve, il couleur ou encadre celles-ci.

    Merci de votre aide

    Stéphanie

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La première chose à faire c'est d'utiliser l'enregistreur de macro.
    Vous pouvez enregistrer une macro avec la fonction rechercher/remplacer en mettant en texte de remplacement le même que celui de recherche mais avec un format différent.
    Si tu suis ce que Christophe t'a indiqué tu devrais déjà avoir un bout de code et si ensuite tu as un problème, des explications à demander ou améliorer le code, tu reviens poser la question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci pour la réponse Corona.

    Pour la procédure d'enregistrement de la macro je sais comment on fait mais hélas ça ne fonctionne pas.
    J'explique ma démarche :
    - je créée un nouveau bouton à laquelle je lui attribue la macro "Rechercher" puis enregistrement
    - je fais crtl+f et là, j'inscris le mot rechercher qui en faite correspond à une cellule (J6 nommé "Recherche_nom" et/ou J8 nommé "Recherche_prenom" de la feuil1, info recherche dans feuil2), je sélectionne "dans" Classeur, suivant puis fermer
    - je sélectionne la ligne complète pour l'encadrer en rouge
    - je stoppe la macro
    - je fais alt F11 pour afficher la fenêtre Visual Basic

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Range("L12").Select
        Sheets("Feuil2").Select
        Cells.Find(What:="Recherche_nom", After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            .Borders.LineStyle = xlContinuous
            .Borders.Color = -15952904
            .Borders.Weight = xlMedium
            .Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Ma question : la recherche doit s'effectuer sur le contenu de l'une ou l'autre des cellules J6 J8

    Merci pour votre aide

    Stéphanie

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si la recherche doit ce faire après que l'utilisateur ait entré une valeur en J6 ou J8, j'opterais pour une procédure événementielle de l'objet Feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
      If .Column = 10 Then
       If .Row = 6 Or .Row = 8 Then
        MsgBox "Je cherche" ' Ici placer l'appel à la procédure de recherche
       End If
      End If
     End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour Corona,

    Je pose une question peut-être bête mais c'est quoi l'appel de procédure de recherche ?

    Je t'avoue que je ne comprends pas trop !

    Je copie le code suivant dans thisworbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
      If .Column = 10 Then
       If .Row = 6 Or .Row = 8 Then
        MsgBox "Je cherche" ' Ici placer l'appel à la procédure de recherche
       End If
      End If
     End With
    End Sub
    est-ce qu'il faut modifier quelque chose ci-dessous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Range("L12").Select
        Sheets("Feuil2").Select
        Cells.Find(What:="Recherche_nom", After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            .Borders.LineStyle = xlContinuous
            .Borders.Color = -15952904
            .Borders.Weight = xlMedium
            .Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Je pense a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim i as range
    i = j6
    au dessus du code précédent commençant par "Range("L12").Select"

    Désolé pour ma méconnaissance, j'essaye de me documenter en autre avec le tuto formation VBA. J'en suis à la 50è pages sur 256,et là ça chauffe à l'intérieur et je m'y perds un peu ! C'est vrai, je manipule le VBA depuis 2 petites semaines donc je vais persévérer.

    Merci de votre compréhension et de votre accompagnement.

    Stéphanie

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    SUB et FUNCTION sont des procédures.
    Le code que je t'ai envoyé doit être copié dans l'objet Feuille où se trouve les cellules J6 et J8.
    Quand tu es dans l'éditeur VBE (VBA) normalement en haut et à gauche tu dois avoir l'explorateur de projet. S'il n'est pas ouvert (Affichage/Explorateur de projet (Ctrl+R)).
    Repère dans l'explorateur le nom de ton classeur VbaProject (NomDuClasseur.xls)
    En-dessous, tu as le nom des feuilles. Double-click sur la feuille où se trouve tes cellules, la page de code va s'ouvrir et tu colles le code que je t'ai envoyé.
    Pour tester si c'est la bonne feuille, tu entres une donnée en J6 ou J8, tu devrais voir apparaître le message "Je cherche".
    Private Sub Worksheet_Change(ByVal Target As Range) est une procédure événementielle, qui réagit à une modification de n'importe quelle cellule de cette feuille. L'argument Target de cette procédure est un objet Range qui est la cellule sur laquelle on fait une modification.
    Si tu ajoutes à l'instruction MsgBox "Je cherche " & .address tu obtiendras l'adresse de la cellule où à eu lieu la modification.
    Donc si cela fonctionne tu remplaces la ligne MsgBox et ... par le nom de ta procédure de recherche. Comme son nom m'est caché je ne sais pas comment tu l'as nommé
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Re bonjour,

    Excuse moi, je suis long à la détente mais qu'est-ce que c'est que le nom de la procédure de recherche ?

    Est-ce que c'est celui-ci "Sub RECHERCHE()" et donc je tape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
      If .Column = 10 Then
       If .Row = 6 Or .Row = 8 Then
        Call RECHERCHE
       End If
      End If
     End With
    End Sub
    sur la feuil1 qui contient la cellule j6 et j8. Pour la macro Recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RECHERCHE()
     
    ' RECHERCHE Macro
     
        Range("j6").Select
        Sheets("Base").Select
        Cells.Find(What:="Recherche_nom", After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            Selection.Borders.LineStyle = xlContinuous
            Selection.Borders.Color = -15952904
            Selection.Borders.Weight = xlMedium
            Selection.Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Il faut remplacer par quoi "Recherche_nom" situe à droite "Cells.Find(What:="

    Merci

    Stéphanie

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Une petite modification de la procédure RECHERCHE comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RECHERCHE(strValue As String)
     
    ' RECHERCHE Macro
     
        Range("j6").Select
        Sheets("Base").Select
        Cells.Find(What:=strValue, After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            Selection.Borders.LineStyle = xlContinuous
            Selection.Borders.Color = -15952904
            Selection.Borders.Weight = xlMedium
            Selection.Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Et son appel dans la procédure événementielle:
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour,

    Merci Alain Tech, j'ai modifié mon code avec ce que tu as écris mais cela ne fonctionne pas !
    En faite, lorsque j'écris un nom en cellule j6 ou le prénom en j8 et que je clique sur le bouton Rechercher Voici ce qui s'affiche

    Message d'erreur : argument facultatif

    Je devrais avoir, à l'affichage, la feuille base avec l' une ou l'autre ou bien les deux réponses encadrées

    Le code Recherche correspond au bouton du même non sur feuil1 du classeur donc pas de problème.
    Le deuxième,

    je l'ai placé sur code de la feuil1 ou se trouve les cellules en question, hélas je ne vois que c'est une procédure événementielle.

    Désole de poser des questions si bête, j'ai commence le VBA depuis 2 petites semaines, merci de votre compréhension.



    Stéphanie

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour Stéphanie,
    Explication de Laurent Longre
    Une procédure événementielle est une procédure qui se déclenche automatiquement en réponse à une action de l'utilisateur ou du logiciel, appelée "événement".
    Cet événement peut être par exemple la sélection d'une cellule, la saisie d'une valeur, l'ouverture d'un classeur, l'activation d'une feuille de calcul ou encore la sélection d'une commande de menu. Les procédures événementielles permettent d'intercepter ces actions afin de contrôler les manipulations de l'utilisateur, d'enrichir les commandes intégrées d'Excel en leur "greffant" ses propres macros, ou encore de personnaliser de manière dynamique l'environnement de l'application.
    As-tu essayé testé le code que je t'ai envoyé hier en suivant les explications que j'ai donné ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour Corona

    J'ai essayé ça mais cela ne fonctionne pas

    Dans code feuille 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
     With Target
      If .Column = 10 Then
       If .Row = 6 Or .Row = 8 Then
        Call RECHERCHE
       End If
      End If
     End With
    End Sub
    Puis macro correspondant au bouton Recherche (feuil1) voir pièce jointe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RECHERCHE()
     
    ' RECHERCHE Macro
     
        Range("j6").Select
        Sheets("Base").Select
        Cells.Find(What:="Recherche_nom", After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            Selection.Borders.LineStyle = xlContinuous
            Selection.Borders.Color = -15952904
            Selection.Borders.Weight = xlMedium
            Selection.Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Il y a une différence avec ce que m'a transmis Alain Tech

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RECHERCHE(strValue As String)
     
    ' RECHERCHE Macro
     
        Range("j6").Select
        Sheets("Base").Select
        Cells.Find(What:=strValue, After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            Selection.Borders.LineStyle = xlContinuous
            Selection.Borders.Color = -15952904
            Selection.Borders.Weight = xlMedium
            Selection.Borders(xlInsideVertical).LineStyle = xlNone
     
    End Sub
    Et son appel dans la procédure événementielle donc si j'ai bien compris dans feuil1

    Rien y fait ça fonctionne pas. Il est plus facile de travailler sur le tableur qu'en VBA. J'avance petit à petit avec tous les tuyaux que je glane par ci par là !

    Stéphanie

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Re Bonjour,

    J'ai supprimé tous les codes et remplacé par celui-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub RECHERCHE()
     
    ' RECHERCHE Macro
     Dim cellule As Range
     cellule = "j6"
     
        Range("j6").Select
        Sheets("Base").Select
        Cells.Find(What:=Range, After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=False).Activate
            Selection.Borders.LineStyle = xlContinuous
            Selection.Borders.Color = -15952904
            Selection.Borders.Weight = xlMedium
            Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Excel, n'aime pas mon code. Il me renvoie sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cells.Find(What:=Range, After:=ActiveCell, LookIn:=xlValues, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
    et surligne le mot Range après "Cells.Find(What:=..."

    Bon j'essaye, pas concluant !

    Un coup de main svp

    Stéphanie

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Points : 350
    Points
    350
    Par défaut
    salut

    Autre suggestion, dans le module de la feuille de l'évènement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
        With Target
            If .Column = 10 Then
                If .Row <> 6 And .Row <> 8 Then Exit Sub
                RECHERCHE Target.Value
            End If
        End With
    End Sub
    Dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub RECHERCHE(Ttexte As String)
        Dim SiLa As Range
        Sheets("Base").Select
        Set SiLa = Cells.Find(Ttexte, LookIn:=xlValues)
        If SiLa Is Nothing Then Exit Sub
        SiLa.Select
        Selection.Borders.LineStyle = xlContinuous
        Selection.Borders.Color = -15952904
        Selection.Borders.Weight = xlMedium
        Selection.Borders(xlInsideVertical).LineStyle = xlNone
        Sheets("Feuil1").Select    'onglet d'où est lancé l'évènement
    End Sub

  14. #14
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Et sans Select (que j'avais laisser passer dans mon message précédent):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub RECHERCHE(strValue As String)
      Dim rngFound As Range
      Dim wksDest As Worksheet
      Set wksDest = Sheets("Base")
      Set rngFound = wksDest.Cells.Find(strValue, LookIn:=xlValues) ' Attetion au parametre LookAt
      If rngFound Is Nothing Then Exit Sub
      rngFound.Borders.LineStyle = xlContinuous
      rngFound.Borders.Color = -15952904
      rngFound.Borders.Weight = xlMedium
      rngFound.Borders(xlInsideVertical).LineStyle = xlNone
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Bonjour

    Tout d'abord merci à OrDonc et Alain Tech de m'avoir répondu.

    J'ai mis en pratique les deux solutions et les deux me renvoie le même message d'erreur "Argument facultatif"

    Pourquoi ? Je ne sais pas !

    Merci de m'aider

    Stéphanie

  16. #16
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour Stéphanie,
    Je viens de regarder la miniature que tu as déposée hier dans ton post de 16h52.
    Je vois et j'imagine que cette image représente la feuille Excel et que la zone encadrée recherche représente les cellules J6 & J8 cellules où tu veux taper indifféremment le nom ou le prénom d'une personne se trouvant sur la fiche.
    En même temps deux ou trois cellules à gauche, je constate que les cellules à droite de Nom et Prénom sont contrôlées par une validation de donnée Liste si je devine bien.
    A quoi cela sert-il ?
    Si je comprends bien, tu veux tout simplement faire une recherche au départ d'une cellule du classeur en tapant soit le nom, soit le prénom.
    Dans ce cas nul besoin de VBA. Deux Zone de Liste déroulante (Contrôle formulaire) que tu trouves en cliquant sur Insérer du groupe Contrôle de l'onglet [Developpeur]. Associée aux formules INDEX/EQUIV et le tout est joué.
    Si cela t'intéresse, je peux déposer un fichier exemple que j'ai fait avec en plus une mise en couleur de la ligne qui est recherché et ce avec une mise en forme conditionnelle.
    C'est de plus je crois, le sujet de ta question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    re Bonjour,

    Oui je veux bien voir votre fichier, svp.

    Corona, vous avez bien compris ma démarche et le contenu de la feuil1, en faite la liste (feuil2 "Base") contient plus de 1500 noms et donc une recherche en tapant soit le nom, soit le prénom ou bien les deux serait plus rapide.

    Pour la fonction index, je l'utilise avec les deux listes déroulantes et ce qui si trouve en dessous pour pouvoir naviguer d'une ligne à une autre.

    En vous remerciant,

    Stéphanie

  18. #18
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour Stéphanie,
    Voici le lien pour télécharger le fichier excel avec un exemple de recherche double à l'aide de contrôle formulaire.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 241
    Points : 62
    Points
    62
    Par défaut
    Re Bonjour

    Merci pour le fichier Corona, j'ai regardé ce dernier et je le conserve pour d'autres applis.

    En faites, j'utilise la même chose pour ce qui se trouve à gauche de la feuille sauf que je n'emploie pas la MFC (intéressante) dans le cas présent. La MFC me sert pour la base, au fur et a mesure que j'alimente cette dernière, les lignes se colorent tous les lignes chiffre paire "=SI($A1<>"";MOD(LIGNE();2)=0;"")" pour info.

    L'idée de départ, comme je l'écrit sur le précédent message, est d'avoir
    - la possibilité de naviguer ligne par ligne, les informations sont affichées en dessous ou
    - de tape ce que je recherche pour aller plus vite et donc de basculer sur la feuille Base avec la ligne encadrée

    Je ne sais pas si je me suis bien fait comprendre.

    Merci du coup demain,

    Stéphanie

  20. #20
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 865
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 865
    Points : 28 796
    Points
    28 796
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    L'idée de départ, comme je l'écrit sur le précédent message, est d'avoir
    - la possibilité de naviguer ligne par ligne, les informations sont affichées en dessous ou
    - de tape ce que je recherche pour aller plus vite et donc de basculer sur la feuille Base avec la ligne encadrée
    Je ne sais pas si je me suis bien fait comprendre.
    Non pas vraiment.
    Basculer sur la feuille Base pour moi, c'est la sélectionner mais je ne pense pas que se soit cela dont tu parles et avec la ligne encadrée ?.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2003] recherche liée à la couleur des mots
    Par kabidan dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/01/2014, 09h41
  2. [XL-2003] Macro recherche avec mise en couleur des mots clefs
    Par empochez dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2011, 18h52
  3. [XL-2003] problème de recherche de doublon et mise en couleur des mots
    Par lolodera dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 02/05/2011, 10h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo