Fonction Si avec plusieurs critères/dans plusieurs colonnes

Bonsoir,

Je me permets de venir vers vous car je ne réussi pas à créer un code VBA.

J'aimerais pouvoir trier une extraction de base suivant plusieurs critères:

  • je ne reussi pas à coder une fonction si à partir de la colonne G (G1:G), en effet j'aimerais uniquement garder les lignes qui ont un montant >=500000 ( en cellules G).
  • Puis avec les lignes restantes j'aimerais savoir comment supprimer celles qui ont un résultat < 5 en colonnes O (O1:O).

J'ai tenté avec la fonction .union et Target.Offset mais rien y fait je reste bloqué.

Si quelqu'un pouvait m'aider ça me permettrait de partir un peu plus tôt du bureau chaque jour!!!

Merci d'avance pour vos réponses.

bonne soirée.

luprt

Bonsoir,

On veut bien t'économiser un peu de temps, mais si toi aussi, tu pouvais nous en économiser, ce serait mieux....

Aussi, si tu pouvais joindre un fichier exemple, exempt de toutes données confidentielles, on pourrait ajuster notre réponse.

Et est-ce qu'une extraction de ta base vers un nouvel onglet, et ne conservant que les lignes qui t'intéressent, ça pourrait t'aller?

@ te relire

Bonsoir cousinhub,

Je joints un fichier avec mes débuts de code, si cela peut-étre utile, plus le formalisme de l'extraction de base.

Après ma base arrive comme ceci, donc quand tu parle d'un nouvel onglet tu veux parler d'une nouvelle feuille?

J'essaye que tout se passe sur un même fichier excel mais si tu pense que cela sera plus facile et plus pratique de le mettre dans un nouvel onglet je veux bien tes conseils car je ne pense pas pouvoir le coder seul.

Merci encore pour ton aide.

85si-criteres.xlsx (34.50 Ko)

bonsoir,

rebonsoir consinhub,

une macro faite sur base de tes explications et sans avoir vu ton fichier que tu viens de mettre.

Sub test()
    Set ws1 = Worksheets("feuil1")
    Set ws2 = Worksheets("feuil2")
    derlig = ws1.Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
    dercol = ws1.Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Column
    ws1.Cells.AutoFilter
    ws1.Range(Cells(1, 1), Cells(derlig, dercol)).AutoFilter Field:=7, Criteria1:=">50000", Operator:=xlAnd
    ws1.Range(Cells(1, 1), Cells(derlig, dercol)).AutoFilter Field:=15, Criteria1:="<5", Operator:=xlAnd
    ws1.Rows("1:" & derlig).Copy ws2.Range("A1")
    ws2.Cells.AutoFilter
    ws1.Cells.AutoFilter
    Set ws1 = Nothing
    Set ws2 = Nothing
End Sub

Re-,

Dans le fichier joint, 2 onglets

L'onglet "base", qui contient tes données, et l'onglet "resultat", qui va recevoir les données voulues....

Attention, il faut que les en-têtes de colonne soient strictement identiques et que les onglets se nomment bien comme les miens (ou alors les changer dans le code)

Bon courage

87si-criteres-v1.xlsm (18.36 Ko)

Genial merci beaucoup,

Par contre juste deux dernières questions:

si je veux utiliser cette formule pour un autre document comment je peux faire, car comme tu me l'as mentionné si je change juste le nom d'une colonne la macro ne fonctionne plus?

Sub extract()

Dim FBase As Worksheet, FResult As Worksheet

Set FBase = Sheets("base")

Set FResult = Sheets("resultat")

Dim Plg As Range

With FBase

Set Plg = .Range("A1:V" & .Cells(Rows.Count, "G").End(xlUp).Row)

.Range("AB2").FormulaR1C1 = "=AND(RC7>=500000,RC15>5)"

Plg.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _

"AB1:AB2"), CopyToRange:=FResult.Range("A1:V1"), Unique:=False

.Range("AB2").Clear

End With

End Sub

pourrais tu juste m'expliquer la partie en gras que je puisse mieux comprendre si tu as encore du temps?

ENcore une fois Merci de votre aide.

Re-,

en fait, c'est juste la transcription en VBA du filtre élaboré...

Dans ce filtre, je mets une formule dans la cellule AB2, qui donnera VRAI ou Faux si les 2 conditions sont réunies.

Et l'extraction se fera sur les lignes qui réuniront ces 2 conditions.

Et effectivement, il est impératif que les en-têtes soient strictement identiques, entre la feuille de données, et la feuille d'extraction.

Regarde un peu dans l'aide pour le filtre élaboré, personnellement, je l'utilise énormément, car c'est une des fonctions natives d'Excel, qui plus est, très très rapide.

Bon courage

Rechercher des sujets similaires à "fonction criteres colonnes"