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 :

RechercheV retourne plusieurs valeurs distinctes


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
    Administrateur de base de données
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Par défaut RechercheV retourne plusieurs valeurs distinctes
    Bonjour,

    J'ai une liste de nom associée à un code à trois lettres:

    Paul XXX
    Jean YYY
    Claude ZZZ
    Pierrre BBB
    Antoine SSS
    Paul XXX
    Arthur XXX
    Nicolas PPP

    J'ai besoin de récupérer les noms associés à un code. Par exemple je veux récupérer les noms associés au code XXX. En effectuant une recherchev classique cela me renvoi Paul. Or dans ma liste il n'y a pas que Paul qui possède le code XXX. J'ai donc trouvé le code d'une fonction qui permet de retourner tout les noms associés à un code :

    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
    Function VLookUpList(ValeurRecherchee As Range, TableDeRecherche As Range, NumColonne As Integer) As Variant
    Dim NbLignes As Integer
    NbLignes = TableDeRecherche.Rows.Count
     
    Dim CompteurValeursTrouvees As Integer
    CompteurValeursTrouvees = 0
     
    For i = 1 To NbLignes
        If TableDeRecherche(i, 1).Value = ValeurRecherchee.Value Then
            CompteurValeursTrouvees = CompteurValeursTrouvees + 1
            If CompteurValeursTrouvees > 1 Then
            VLookUpList = VLookUpList & ";" & TableDeRecherche(i, NumColonne).Value
        Else
            VLookUpList = TableDeRecherche(i, NumColonne).Value
            End If
        End If
    Next i
     
    End Function
    Cependant dans mon exemple vous pouvez voir que Paul est associé deux fois au code XXX. Cette fonction me renvoi donc deux fois Paul.
    J'aimerai la modifier pour qu'elle me renvoi que des valeurs unique et supprime les doublons.

    J'aimerai avoir comme résultat
    XXX Paul;Arthur
    et non pas
    XXX Paul;Paul;Arthur

    Merci pour votre aide !

  2. #2
    Membre expérimenté Avatar de lucasgaetan
    Homme Profil pro
    dessinateur BE
    Inscrit en
    Août 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : dessinateur BE
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 175
    Par défaut
    bonjour,

    moi je me sert de ça
    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
    Sub SupprDoublon()
    Dim maVal As String
    'suppose que la colonne à comparer est triée par ordre < ou >
    'ici ont compare la colonne C
        Range("C2").Select
     
        maVal = ActiveCell.Value
     
        ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
     
        Do While ActiveCell.Value <> ""
            If ActiveCell.Value = maVal Then
                'suppr de la ligne
                Rows(ActiveCell.Row).Delete Shift:=xlUp
            Else
                maVal = ActiveCell.Value
                ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
            End If
        Loop
     
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2013
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 31
    Par défaut
    Merci lucasgaetan de ton aide,

    Mais la fonction que j'utilise renvoi les données dans une seul cellule, qu'elle sépare par des ";".
    Si j'ai bien compris ta fonction permet de supprimer les doublons d'une colonne. Ce n'est pas ce que je veut faire.
    Je souhaiterai que ma fonction renvoi les valeurs unique, même si elles apparaissent plusieurs fois.

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Bonjour,

    sans feuille de données, je conseillerais juste l'utilisation d'un dictionnaire.
    Consulter Dictionary dans l'aide VBA intégrée et voir les exemples dans les discussions de ce forum …


Discussions similaires

  1. Réponses: 0
    Dernier message: 09/04/2015, 13h09
  2. Fonction qui retourne plusieurs valeurs !
    Par casafa dans le forum C++
    Réponses: 20
    Dernier message: 23/04/2014, 17h56
  3. [Trigger] - retourné plusieurs valeurs ?
    Par jacquesh dans le forum Oracle
    Réponses: 18
    Dernier message: 12/12/2007, 14h49
  4. Fonction retournant plusieurs valeurs
    Par Trap D dans le forum Scheme
    Réponses: 1
    Dernier message: 17/02/2006, 22h52
  5. [PL/SQL] Fonction qui retourne plusieurs valeurs
    Par Loko dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2004, 10h43

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