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 :

Recherche valeur sur 2 colonne et recupération du numero de la ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Militaire
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Militaire

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Par défaut Recherche valeur sur 2 colonne et recupération du numero de la ligne
    Bonjour,
    Dans mon tableau, j'ai plusieurs colonne pour inscrire plusieurs informations sur des personnes en utilisant un userform.
    J'aimerais savoir comment je peux faire pour rechercher si j'ai deja rentrer cette personne en recherchant dans les colonnes nom et prenom, pour pouvoir ensuite recuperer le numero de la ligne qui correspond a cette personne pour inserer d'autre infos dans les colonne de cette ligne.
    J'ai vu qu'il y avait la fonction find mais je ne comprends pas vraiment son fonctionnement.
    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Regarde ce qui suit et adapte :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Sub test()
     
        'pour le test de recherche
        MsgBox Rechercher("Lebouteiller", "Sébastien")
     
    End Sub
     
    Function Rechercher(Nom As String, Prenom As String) As String
     
        Dim plage As Range
        Dim Cel As Range
        Dim Adr As String
        Dim Message As String
     
        'sur la feuille "Feuil1" en colonne A à partire de A2 <-- à adapter...
        With Worksheets("Feuil1")
     
            Set plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
        End With
     
        'défini le message par défaut
        Message = "'" & Nom & " " & Prenom & "' n'existe pas dans la base de données !"
     
        'effectue la recherche exacte du nom
        Set Cel = plage.Find(Nom, , xlValues, xlWhole)
     
        'si trouvé, compare le prénom. Si le prénom correspond aussi, change le message
        If Not Cel Is Nothing Then
     
            Adr = Cel.Address
     
            Do
     
                If Cel.Offset(, 1).Value = Prenom Then
     
                    Message = "'" & Nom & " " & Prenom & "' existe dans la base de données et est situé(e) à la ligne " & Cel.Row
     
                    Exit Do
     
                End If
     
                Set Cel = plage.FindNext(Cel)
     
            Loop While Adr <> Cel.Address
     
        End If
     
        'retourne le message
        Rechercher = Message
     
    End Function
    Hervé.

  3. #3
    Membre averti
    Homme Profil pro
    Militaire
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Militaire

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Par défaut
    Merci je vais testé

  4. #4
    Membre averti
    Homme Profil pro
    Militaire
    Inscrit en
    Octobre 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Militaire

    Informations forums :
    Inscription : Octobre 2012
    Messages : 33
    Par défaut
    Encore merci pour votre aide et vos explications,
    J'ai compris comment fonctionner le code que vous m'avez ecrit mais a la place du message je voudrais juste etre en mesure de recuperer le numero de la ligne pour l'integrer dans un .Range("A" & Lig) pour remplir un tableau.
    Par exemple si la recherche n'aboutit pas alors la fonction s'arrete et mon code continue mais si elle trouve une correpondance, je voudrais recuperer le numero de la ligne pour finir de remplir des informations concernant la personne recherchée.

    Je vais continuer à essayer, c'est trés existant la programmation...BIZ

    merci

    je bloque pour attribuer le numero de la ligne trouvé dans une variable.
    J'ai trouvé comment faire pour que le remplissage du tableau se fasse differemment suivant le resultat de la recherche mais je galere pour affecter le numero de la ligne a une variable
    J'ai essayé de mettre dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      If Cel.Offset(, 1).Value = Prenom Then
                    LigEx = Cel.Row
                    Message = "V"
     
                    Exit Do
    la variable LigEx serait reutiliser dans le reste du code.

    merci

  5. #5
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Une adaptation du code de Hervé
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub test()
    Dim Ligne As Long
        'pour le test de recherche
        Ligne = RechercherLigne("Lebouteiller", "Sébastien")
        If Ligne > 0 Then
            MsgBox "Le nom a été trouvé à la ligne " & Ligne
        Else
            MsgBox "Le nom n'a pas été trouvé "
        End If
    End Sub
    Function RechercherLigne(Nom As String, Prenom As String) As Long
    Dim Plage As Range
    Dim Cel As Range
    Dim Adr As String
    Dim Message As String
     
        'sur la feuille "Feuil1" en colonne A à partire de A2 <-- à adapter...
        With Worksheets("Feuil1")
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
        End With
     
        'défini le message par défaut
        Message = "'" & Nom & " " & Prenom & "' n'existe pas dans la base de données !"
     
        'effectue la recherche exacte du nom
        Set Cel = Plage.Find(Nom, , xlValues, xlWhole)
        'si trouvé, compare le prénom. Si le prénom correspond aussi, change le message
        If Not Cel Is Nothing Then
            Adr = Cel.Address
            Do
                If Cel.Offset(, 1).Value = Prenom Then
                    LigEx = Cel.Row
                    Exit Do
                End If
                Set Cel = Plage.FindNext(Cel)
            Loop While Adr <> Cel.Address
        End If
        'retourne le message
        RechercherLigne = LigEx
    End Function
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher valeur et ajouter valeur sur la colonne voisine
    Par blackty1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2013, 13h51
  2. Réponses: 3
    Dernier message: 27/08/2010, 13h01
  3. SELECT des lignes qui ont exactement 4 valeurs sur la colonne ?
    Par mamiberkof dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/01/2008, 15h00
  4. Recherche valeurs d'une colonne
    Par Joachim49 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/12/2007, 13h59
  5. Réponses: 2
    Dernier message: 07/10/2006, 19h46

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