Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Copier une ligne complète si une cellule de la colonne contient "Oui"

JulieMaz

XLDnaute Nouveau
Bonjour à tous,
Voilà mon problème: Dans mon fichier, j'aimerais afficher en dessous de mon tableau croisé dynamique, les lignes de ma feuille "Clients" dont la colonne U contient Oui. Je dois vous avouer que je commence à peine avec les fonctions avancées d'Excel et ça fait 2 semaines que je bûche pour trouver mais sans succès.
Je ne sais pas si je suis claire... Bref, je vous laisse mon fichier en espérant que quelqu'un pourra m'aider. Merci!
 

Pièces jointes

  • Tableua bord forum.xlsx
    11.3 KB · Affichages: 10

Calvus

XLDnaute Barbatruc
Bonsoir et bienvenue sur le forum,

Voici une proposition.
VB:
Option Explicit
Option Base 1

Sub Extraire()
Dim i As Integer, n As Single, j As Single, m As Single, t, a(), maxi As Single
t = Range("A1").CurrentRegion
ReDim t(1 To UBound(t), 23)
ReDim a(1 To UBound(t), 23)

For i = 2 To Cells(1, Columns.Count).End(xlToLeft).Column
    If LCase(Cells(i, 21)) = "oui" Then
        n = n + 1
            For j = 1 To 23
                t(n, j) = Cells(i, j)
            Next j

maxi = Cells(Rows.Count, 1).End(xlUp).Row
    Else
        m = m + 1
                If m > maxi Then Exit For
            For j = 1 To 23
                a(m, j) = Cells(i, j)
            Next j
    End If
Next i
Feuil2.[A10].Resize(UBound(t, 1), 23) = t
Feuil2.[A25].Resize(UBound(a, 1), 23) = a
End Sub

A+
 

Pièces jointes

  • Tableua bord forumJulie.xlsm
    23.6 KB · Affichages: 8

JulieMaz

XLDnaute Nouveau
Merci Calvus!
Je l'ai essayé et, comme je n'y comprend pas grand chose, la réponse à été ceci: (voir image jointe).
Peut-être me suis-je trompée dans la retranscription ??
 

Pièces jointes

  • image erreur macro.PNG
    51.1 KB · Affichages: 6

JulieMaz

XLDnaute Nouveau
Sur ma page Synthèse.... je crois....
Ouf, je me demande si ne serais pas mieux d'abandonner je ne veux pas vous faire perdre votre temps.... Je suis, je crois, pas assez avancée pour faire ça.
Peut-être que je serais mieux d'aller prendre un cours. :-/
 

Efgé

XLDnaute Barbatruc
Bonjour JulieMaz, Bonjour Calvus
Avec une formule matricielle peut-être?

@JulieMaz : Prends l'habitude d'utiliser des tableaux Accueil / mettre sous forme de tableau

Cordialement
 

Pièces jointes

  • Tableau_bord_forum-3.xlsx
    26.3 KB · Affichages: 9

Dim.Reichart

XLDnaute Occasionnel
Bonsoir,
J'ai passé la journée d'hier sur une formule de ce genre, je l'ai adapté, et ca donne ceci, à coller en A11:

=SI(LIGNES($11:11)=1;INDIRECT("clients!$a"&EQUIV("oui";INDIRECT("clients!$u$1:u"&NBVAL(Clients!$A:$A);VRAI);0);VRAI);SI(LIGNES($11:11)<=NB.SI(Clients!$U:$U;"oui");
INDIRECT("clients!$a"&EQUIV($A10;Clients!$A:$A;0)+EQUIV("oui";INDIRECT("clients!$u"&EQUIV($A10;Clients!$A:$A;0)&":u"&NBVAL(Clients!$A:$A);VRAI);0);VRAI);""))

Puis en B11:
=SI($A11="";"";RECHERCHEV($A11;INDIRECT("clients!l1c1:l"&NBVAL(Clients!$A:$A)&"c"&NBVAL(Clients!$1:$1);FAUX);COLONNES($A:B);FAUX))

Tu étires B11 jusque W11, sans rien modifier, et la ligne 11 jusqu'à la ligne 25.

Pour le second choix, tu reprend la formule de A11, tu modifies les "oui" par l'autre choix, et les numéros de ligne dans lignes($11:11). Pour Recherche V, tu peux reprendre la même qu'en B11 sans modification.

Si le tableau clients est modifié, la formule adapte sa zone de recherche, mais les emplacements restent limités par le second choix.
Dis moi si cela te convient.
 

Efgé

XLDnaute Barbatruc
Bonjour le fil, bonjour Dim.Reichart
Je pense que la version matricielle en Synthèse!$A$11 à tirer vers la droite et vers le bas
VB:
=SIERREUR(INDEX(DECALER(Tableau1[Numéro client];;COLONNES($A:A)-1);PETITE.VALEUR(SI(Tableau1[offre refusée]="OUI";LIGNE(Tableau1[Numéro client])-1);LIGNES($1:1)));"")
est plus courte et a l'avantage d'être unique sur l'ensemble de la zone de restitution.

Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…