Fonction SI résultat d'un filtre

Résolu
bacflippe Messages postés 67 Statut Membre -  
bacflippe Messages postés 67 Statut Membre -
Bonjour,
Tout d'abord meilleurs voeux pour cette année !
Après moultes recherches et quelques tentatives infructueuses je viens vous demander de l'aide.
Je souhaiterais obtenir un résultat découlant de la fonction SI, en fonction d'un filtre appliqué à une colonne.
Je m'explique, par exemple, dans la colonne B filtrée peut apparaitre soit CB, soit virement, soit un numéro, pas forcémént une seule ligne mais possiblement deux ou trois.
En filtrant par nom, je voudrais que la cellule D10 me retourne le résultat escompté, soit CB, soit, virement, soit chèque pour tous les autres cas de figure (un numéro).
J'espère avoir été assez clair ?
Merci par avance.
https://www.cjoint.com/c/LAdxsit28Hu

10 réponses

  1. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    c'est normal, en E38 tu as cette formule qui ne peut fonctionner en l'état
    =SI(Table1[chèque]="virement";"virement";SI(Table1[chèque]="CB";"CB";"chèque"))

    parce colonne chèque tu as
    6546574
    5400844
    virement
    CB

    et dans ta formule tu ne fais pas référence soit à un numéro de facture ou une donnée unique de ton tableau.
    Exemple si tu veux en E38 CB qui correspond à la facture 2393 il conviendrait d'utiliser la syntaxe RECHERCHEV par exemple en E34 tu saisis 2393 et en E34 cette formule

    =SIERREUR(SI(ESTNUM(RECHERCHEV(E34;Table1;8;0)*1);"Chèque";RECHERCHEV(E34;Table1;8;0));"")


    1
  2. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 493
     
    Bonjour.

    Je ne vois vraiment pas comment on pourrait s'y prendre ...
    Pourquoi ne ferais-tu pas l'inverse ? Saisir en D10 (si besoin avec une liste déroulante de cellule) le type de paiement, et que cette saisie serve à lancer le filtre !
    0
  3. bacflippe Messages postés 67 Statut Membre 4
     
    Bonjour et merci pour la réponse, malheureusement cela est impossible, le filtre est dèjà lancé par une macro!
    Je ne peux pas changer le fonctionnement.
    Les noms sont filtrés les uns après les autres, par ordre alphabétique ...
    0
  4. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 493
     
    Bonjour.

    Quand on travaille avec macro, c'est la moindre des choses de le signaler.
    Ainsi je n'aurais même pas essayé d'intervenir, n'y connaissant rien en VBA ...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Tu parles de macro, hors ton fichier n'en contient pas et un fichier avec macro ne peut être enregistré en XLSX mais en XLSM, éventuellement en XLS s'il s'agit d'un fichier ancien ou que ton Excel est antérieur à 2007.
    donc pour t'aider il faudrait connaitre toute la structure de ton fichier sinon les recherches peuvent durer longtemps.

    PS: Salut Raymond Meilleurs vœux https://www.cjoint.com/c/KLFxKlfydcF

    0
    1. Raymond PENTIER Messages postés 58229 Date d'inscription   Statut Contributeur Dernière intervention   17 493
       
      Merci Mike, pour tes Vœux sur PowerPoint !
      Tu t'es bien amusé, et c'est réussi ...
      Je te souhaite aussi réussite, dans tous les domaines, en espérant que notre collaboration sur CCM perdure.
      Très amicalement,
      Raymond
      0
  7. bacflippe Messages postés 67 Statut Membre 4
     
    Bonjour et meilleurs voeux,
    voici le fichier en question : https://www.cjoint.com/c/LAenzhwcFpu

    Je cherche à récupérer en E38 la condition de la colonne [chèque] filtrée en utilisant la macro bouton de contrôle féches gauche/droite.
    Merci par avance
    0
  8. bacflippe Messages postés 67 Statut Membre 4
     
    Merci pour la réponse !
    Je pense pouvoir l'adapter, je n'arrive pas à lier le numéro de facture apparaissant en première ligne suite au filtre appliqué à la cellule E34 par exemple, je ne sais pas si je suis clair...
    Je souhaiterai que la cellule E34 me renvoie le premier numéro de facture de la colonne A une fois le filtre par nom appliqué...
    0
    1. bacflippe Messages postés 67 Statut Membre 4
       
      J'ai résolu le problème en appliquant cette formule matricielle en E34 ...par exemple...
      =INDEX(Attestation!A62:A1020;EQUIV(1;SOUS.TOTAL(3;DECALER(Attestation!A62:A1020;LIGNE(Attestation!A62:A1020)-MIN(LIGNE(Attestation!A62:A1020));;1));0))


      Merci pour l'aide !
      A+
      0
  9. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    essaye en A34 une formule matricielle qu'il faudra confirmer en cliquant en même temps sur les trois touches du clavier Ctrl Shift et Entrée et si tu fais bien la formule se placera entre ces accolades {}

    =INDEX(Table1[N° fact];MIN(SI(SOUS.TOTAL(3;DECALER(A61;LIGNE(INDIRECT("1:"&LIGNES(A18:A400)));));LIGNE(INDIRECT("1:"&LIGNES(A18:A400))))))

    et en cellule E34
    =SIERREUR(SI(ESTNUM(RECHERCHEV(E34;Table1;8;0)*1);"Chèque";RECHERCHEV(E34;Table1;8;0));"")

    0
  10. bacflippe Messages postés 67 Statut Membre 4
     
    La formule fonctionne très bien également , du coup j'hésite ...laquelle est la mieux ?
    0
  11. Mike-31 Messages postés 18205 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    prend celle que je t'ai donnée, elle prend en compte les colonnes de ton tableau Table1[N° fact]

    ensuite lorsque tu actives tes codes, il se mettent en erreur et plantent le VBA
    en début de tes codes juste après tes variables colle cette gestion d'erreur

    On Error Resume Next

    0
    1. bacflippe Messages postés 67 Statut Membre 4
       
      Ok merci pour les conseils !
      Bonne journée et peut-être à bientôt !
      0