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 :

Index Equiv 2 conditions


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Par défaut Index Equiv 2 conditions
    Bonjour,

    Je voudrais faire un index equiv en vba avec 2 conditions*, c'est-à-dire "si tu trouves dans la colonne 2 et dans la colonne 23 la même chose que dans l'autre feuille, alors tu affiches"

    J'ai essayé plusieurs façon mais en vain. J'ai donc essayé un .Index .Match & .Match mais il m'affiche que 1/10 des éléments que je souhaiterais avoir

    Si quelqu'un peut m'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With Application.WorksheetFunction
            For I = 8 To Range("C100000").End(xlUp).Row
                For k = 1 To 7
     
                  Cells(I, k + 6) = .Index([Tab], ((.Match(Cells(I, 2), [art], 0) & (.Match(Cells(I, 23), [par], 0)))), k + 6)
     
                Next k
            Next I
        End With
    art = colonne article dans feuille origine
    par = colonne article parent dans feuille origine

    *dans le meilleur des cas j'ai même trois conditions mais si ça marche pour deux, ça devrait marcher pour 3

  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,

    Une piste :
    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
     
    Sub Test()
     
        Dim FePlages As Worksheet
        Dim FeCritere As Worksheet
        Dim PlageColB As Range
        Dim PlageColW As Range
        Dim Plage As Range
        Dim CelColB As Range
        Dim CelColW As Range
        Dim Cel As Range
     
        'feuille où sont recherchés les mots
        Set FePlages = Worksheets("Feuil1")
     
        'feuille où sont les mots
        Set FeCritere = Worksheets("Feuil2")
     
        'défini les plages sur les colonnes B et W (2 et 23)
        With FePlages: Set PlageColB = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp)): End With
        With FePlages: Set PlageColW = .Range(.Cells(1, 23), .Cells(.Rows.Count, 23).End(xlUp)): End With
     
        'défini la plage des mots recherchés sur la colonne A
        With FeCritere: Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)): End With
     
        For Each Cel In Plage
     
            Set CelColB = PlageColB.Find(Cel.Value, , xlValues, xlWhole)
            Set CelColW = PlageColW.Find(Cel.Value, , xlValues, xlWhole)
     
            'ce que tu demandes :
            '"si tu trouves dans la colonne 2 et dans la colonne 23 la même chose que dans l'autre feuille, alors tu affiches"
            If Not CelColB Is Nothing And Not CelColW Is Nothing Then
     
                MsgBox "La valeur '" & _
                        Cel.Value & _
                        "' de la feuille '" & _
                        FeCritere.Name & _
                        "' a été trouvée dans les 2 colonnes (B et W) de la feuille '" & _
                        FePlages.Name & _
                        "' en ligne '" & _
                        CelColB.Row & _
                        "' de la colonne B et ligne '" & CelColW.Row & "' de la colonne W !"
     
            End If
     
        Next Cel
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 15
    Par défaut
    Merci en effet avec quelques modifs ça fonctionne, j'avais déjà trouvé une autre solution mais merci pour la réponse !

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

Discussions similaires

  1. index equiv + condition
    Par lafemmeadave dans le forum Excel
    Réponses: 1
    Dernier message: 21/05/2017, 08h17
  2. INDEX et EQUIV à plusieurs conditions
    Par Wismer01 dans le forum Excel
    Réponses: 9
    Dernier message: 27/05/2016, 12h32
  3. Fonction Index Equiv 2 conditions en ligne
    Par MaxM59 dans le forum Excel
    Réponses: 9
    Dernier message: 17/04/2016, 14h47
  4. [E-07] Difficulté avec la formule index/equiv
    Par Bloubee dans le forum Excel
    Réponses: 5
    Dernier message: 03/11/2008, 10h24
  5. Réponses: 17
    Dernier message: 03/01/2008, 14h40

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