Formule Nb Ens Si avec date en VBA

Bonjour à tous,

Malgré toutes mes recherches sur internet, je n'arrive pas à trouver la réponse. J'aurais besoin d'écrire en vba la formule suivante :

=NB.SI.ENS(Global!B:B;"A";Global!C:C;"<"&AUJOURDHUI()-90)

La formule se trouve en colonne C de l'onglet "Synthèse" du document joint.

Merci d'avance pour votre aide.

4test.xlsm (11.16 Ko)

Bonjour,

Tu veux écrire la formule Excel via VBA (cas 1), ou l'évaluer avec VBA et inscrire seulement le résultat (cas 2) ?

Sub Test()

With Sheets("Global") 
    Sheets("Synthèse") .Range("C1").FormulaR1C1 = "=COUNTIFS(Global!C2,"""A""",Global!C3;"""<"""&TODAY()-90)" 'Cas 1
    Sheets("Synthèse") .Range("C1") = Application.CountIfs(.Range("B:B"),"A",.Range("C:C"),"<"&Date-90) 'Cas 2
End With

End Sub

Si la formule est à appliquer à une plage, tu peux utiliser une boucle :

For i = 1 To 100
   Range("C" & i) = "Truc"
Next i

Merci beaucoup Pedro22 !

J'ai opté pour le cas 2 (cf module 1 dans fichier joint) mais il y a quelque chose qui m'échappe : si la date est < 12/05/2018, cela prend en compte la date (ce qui est normal car datant de + de 3 mois) ; si la date est >= 12/05/2018, cela ne prend pas en compte la date (cf cellule C9 de l'onglet Global et l'écart entre la colonne C (formule excel Nb Si Ens) et la colonne D (VBA).

Or cela devrait normalement prendre en compte toutes les dates antérieures de plus de 90 jours, soit antérieures au 05/12/2018 environ (90 jours avant aujourd'hui).

Merci d'avance pour tout éclairage sur ce problème

4test2.xlsm (19.06 Ko)

Bonjour,

Tu aimes faire compliqué on dirait !

Pourquoi répéter X fois la même formule, que ce soit dans Excel ou via VBA ?

Voilà une version révisée :

5test2.xlsm (19.11 Ko)

Magnifique ! Ca fonctionne très bien, et c'est plus propre.

Un grand merci !

Magnifique ! Ca fonctionne très bien, et c'est plus propre.

Un grand merci !

Merci du retour, et content d'avoir apporté mon aide !

Rechercher des sujets similaires à "formule ens date vba"