OVH Cloud OVH Cloud

NB.SI

1 réponse
Avatar
José Carapito
Bonjour...
J´ai déja vu pas mal de solutions pour NB.Si! Mais malheureusement je ne
trouve pas ma solution..:((
J´ai sur ma feuille:
B1=12
A2=10
A3=15
A4=11
A5, vide B5=0
A6=-1
A7=8
A8,vide B8=0
A9=0
A10=-1
Ce que je cherche comme résultats:
C1=NB.SI(A2:A4;critére c´est <B1)=2
C5=NB.SI(A6:A7;critére c´est <B5)=1
C8=NB.SI(A9:A10;critére c´est <B8)=1

Il y a t-il une macro que me me fera ça automatiquement en m´écrivant
directement les résultats sur C1, C5 et C8???!!

"Isabelle" m´a ajoutée cette petite astuce mais qui ne marche pas quand il y
a des "zéros" sur les plages et sur les critères:

Sub Macro1()
Dim début As Range, fin As String, plg As String, critère As String
Set début = Range("A2")
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row + 1)
If c = Empty Then
fin = Range(c.Address).Offset(-1, 0).Address
plg = Range(début.Address & ":" & fin).Address
critère = "<" & Range("B" & début.Row - 1)
Range(début.Address).Offset(-1, 2).Formula = "=SUMPRODUCT((" & plg & critère
& ")*1)"
Set début = Range(c.Address).Offset(1, 0)
End If
Next
End Sub

Merci...et à plus!!

1 réponse

Avatar
Daniel
Bonjour.
Essaie :

Sub test()
Dim DerLigne As Long, Ctr As Integer
DerLigne = Range("B65536").End(xlUp).Row
Range("C1").Select
Do While ActiveCell.Row <= DerLigne
Ctr = 0
If ActiveCell.Offset(0, -1) <> "" Then
i = 1
Do While ActiveCell.Offset(i, -2) <> ""
If ActiveCell.Offset(i, -2) < ActiveCell.Offset(0, -1).Value
Then
Ctr = Ctr + 1
End If
i = i + 1
Loop
ActiveCell.Value = Ctr
End If
ActiveCell.Offset(1, 0).Select
ReDim Tablo(0)
Loop
End Sub

Cordialement.
Daniel
"José Carapito" a écrit dans le
message de news:
Bonjour...
J´ai déja vu pas mal de solutions pour NB.Si! Mais malheureusement je ne
trouve pas ma solution..:((
J´ai sur ma feuille:
B1
A2
A3
A4
A5, vide B5=0
A6=-1
A7=8
A8,vide B8=0
A9=0
A10=-1
Ce que je cherche comme résultats:
C1=NB.SI(A2:A4;critére c´est <B1)=2
C5=NB.SI(A6:A7;critére c´est <B5)=1
C8=NB.SI(A9:A10;critére c´est <B8)=1

Il y a t-il une macro que me me fera ça automatiquement en m´écrivant
directement les résultats sur C1, C5 et C8???!!

"Isabelle" m´a ajoutée cette petite astuce mais qui ne marche pas quand il
y
a des "zéros" sur les plages et sur les critères:

Sub Macro1()
Dim début As Range, fin As String, plg As String, critère As String
Set début = Range("A2")
For Each c In Range("A3:A" & Range("A65536").End(xlUp).Row + 1)
If c = Empty Then
fin = Range(c.Address).Offset(-1, 0).Address
plg = Range(début.Address & ":" & fin).Address
critère = "<" & Range("B" & début.Row - 1)
Range(début.Address).Offset(-1, 2).Formula = "=SUMPRODUCT((" & plg &
critère
& ")*1)"
Set début = Range(c.Address).Offset(1, 0)
End If
Next
End Sub

Merci...et à plus!!