XL 2019 index equiv avec fonction ou sur plusieurs feuilles

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

joelleh47

XLDnaute Nouveau
Bonjour,
j'ai plusieurs onglets dans mon fichier.
Les 2 premiers avec les noms des adhérents et leur fréquentation par trimestre. Je rajoute manuellement à coté du nom dans une colonne spécifique qu'il est bien adhérent . Je souhaite sur mon 3eme onglets, qui est le listing détaillé avec leur coordonnée, que soit reporté qu'il est bien adhérent. Après recherche j'ai la formule ci après qui fonctionne : =SIERREUR(INDEX('2ème trim'!$A$4:$B$101;EQUIV(C242;'2ème trim'!$B$4:$B$101;0);1);" ")
Mais cela cherche que sur 1 onglet.
Comment faire pour chercher sur 2 onglets.
Je pense à la fonction ou, mais cela marche pas, je ne dois pas bien l'écrire!!
pouvez vous svp m'indiquer comment faire?
Merci bcp
 
oui mais 🙁 sur mon nouveau fichier exemple ) la formule ne marche pas encore.. alors qu'elle était ok sur l'autre..
Bonjour,
La formule ne fonctionne pas car il n'est pas possible de faire référence à une matrice dans une formule equiv, ce doit être une ou plusieurs listes forcément.
Voici 2 propositions à coller en B2 et étendre :
Pour différencier un adhérent du 2eme et 4eme trimestre =
Code:
=SIERREUR(SI(INDEX('2T'!$A$4:$B$16;EQUIV(B2;'2T'!$B$4:$B$16;0);1)<>"AD";"⌀AD-2T";"AD-2T");"⌀AD-2T")&" / "&SIERREUR(SI(INDEX('4T'!$A$4:$B$16;EQUIV(B2;'4T'!$B$4:$B$16;0);1)<>"AD";"⌀AD-4T";"AD-4T");"⌀AD-4T")

Si ça n'a pas d'importance =
Code:
=SIERREUR(SI(INDEX('2T'!$A$4:$B$16;EQUIV(B2;'2T'!$B$4:$B$16;0);1)<>"AD";"";"AD");"")&SIERREUR(SI(INDEX('4T'!$A$4:$B$16;EQUIV(B2;'4T'!$B$4:$B$16;0);1)<>"AD";"";"AD");"")

Note : La liste étant susceptible d'évoluer, il serait judicieux de travailler avec des tableaux et de faire référence aux colonnes de ces tableaux plutôt que de référencer une plage de cellule fixe.

A +
 
Bonjour le forum,

Solution VBA :
VB:
Private Sub Worksheet_Activate()
Dim lig&, i&, w As Worksheet
lig = 3: i = lig '1ère ligne des tableaux
Application.ScreenUpdating = False
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    If w.Name Like "#T" Then
        With w.Range("A" & lig).CurrentRegion
            .Copy Range("A" & i)
            i = i + .Rows.Count
        End With
    End If
Next
With Range("A" & lig & ":B" & i)
    .Sort .Columns(2), xlAscending, .Columns(1), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
    .RemoveDuplicates Columns:=2, Header:=xlNo 'supprime les doublons
    .Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'supprime les lignes vides
End With
End Sub
La macro est dans le code de la 3ème feuille et se déclenche quand on active cette feuille.

A+
 

Pièces jointes

Dernière édition:
Avec des tableaux structurés :
VB:
Private Sub Worksheet_Activate()
Dim T As Range, w As Worksheet
Application.ScreenUpdating = False
Set T = ListObjects(1).Range
If Not T.ListObject.DataBodyRange Is Nothing Then T.ListObject.DataBodyRange.Delete xlUp 'RAZ
T(2, 1) = " "
For Each w In Worksheets
    If w.Name Like "#T" Then
            w.Range(w.ListObjects(1).Name).Copy T.Rows(T.Rows.Count + 1)
            Set T = ListObjects(1).Range
    End If
Next
T.Sort T.Columns(2), xlAscending, T.Columns(1), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
T.RemoveDuplicates Columns:=2, Header:=xlNo 'supprime les doublons
T.Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 'supprime les lignes vides
End Sub
 

Pièces jointes

Dernière édition:
Bonjour,

j'ai plusieurs onglets dans mon fichier.
Les 2 premiers avec les noms des adhérents et leur fréquentation par trimestre. Je rajoute manuellement à coté du nom dans une colonne spécifique qu'il est bien adhérent . Je souhaite sur mon 3eme onglets, qui est le listing détaillé avec leur coordonnée, que soit reporté qu'il est bien adhérent. Après recherche j'ai la formule ci après qui fonctionne : =SIERREUR(INDEX('2ème trim'!$A$4:$B$101;EQUIV(C242;'2ème trim'!$B$4:$B$101;0);1);" ")
Mais cela cherche que sur 1 onglet.
Comment faire pour chercher sur 2 onglets.
Pardon, mais ça ne me paraît pas logique ton affaire : ça ne tient pas compte de la date, donc quelqu'un qui est adhérent au T2 mais pas au T3 apparaîtra tout de même adhérent dans ton tableau récapitulatif, même si tu regardes ledit tableau durant le T3.

Ce que tu demandes ne te reportera pas "qu'il est adhérent", mais "qu'il est ou a été adhérent".


M'est avis qu'il y a peut-être bien un petit soucy de conception, ou alors j'ai encore une fois rien pigé au but du truc.
 
Dernière édition:
Bonjour le forum,
Pardon, mais ça ne me paraît pas logique ton affaire
Mais si car le problème posé par joelleh47 est très simple et même simpliste !

Elle veut une formule pour récupérer les valeurs ("AD") situées en colonne A des feuilles des trimestres, c'est tout.

Comme il peut y avoir 4 trimestres on utilisera en A2 de la dernière feuille :
Code:
=""&SIERREUR(INDEX(INDIRECT("1T!A:A");EQUIV(B2;INDIRECT("1T!B:B");0));SIERREUR(INDEX(INDIRECT("2T!A:A");EQUIV(B2;INDIRECT("2T!B:B");0));SIERREUR(INDEX(INDIRECT("3T!A:A");EQUIV(B2;INDIRECT("3T!B:B");0));SIERREUR(INDEX(INDIRECT("4T!A:A");EQUIV(B2;INDIRECT("4T!B:B");0));""))))
INDIRECT est nécessaire car comme sur l'exemple des feuilles peuvent ne pas exister.

A+
 

Pièces jointes

Mais si car le problème posé par joelleh47 est très simple et même simpliste !

Elle veut une formule pour récupérer les valeurs ("AD") situées en colonne A des feuilles des trimestres, c'est tout.
Ben oui, justement, d'où ma remarque. 😄


En fait, les explications de #1 ne correspondent pas avec la demande de #1 :
- les explications disent qu'il faut récupérer les données de T1, T2, etc. et reporter un "AD" si on en trouve au moins un,
- la demande est de reporter "qu'il est adhérent", mais pas "qu'il est ou a été adhérent".

C'est pour ça que je m'interroge sur ce qui est réellement désiré.



Ce n'est d'ailleurs pas la seule chose bizarre :
Pourquoi faire une feuille par trimestre et indiquer la feuille si le gars est adhérent ce trimestre ???
S'il n'est pas adhérent ce trimestre, il n'a rien à faire dans la liste de ce trimestre.

Vu d'ici il serait infiniment plus simple de faire un seul tableau :
- première colonne, les noms
- colonnes suivantes les trimestres, et une croix si le gars est adhérent.

Mais j'imagine qu'il y a plein d'autres données que l'on n'a pas, voire que le but réel n'est pas du tout de gérer des adhérents. 😁
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour