Microsoft 365 Max de plusieurs plages

Zarzis

XLDnaute Nouveau
Bonjour à tous,
Je cherche une formule que permet de chercher les plages entre des zéros et compter la somme de max de chaque plage ;
Par Exemple: cell1= 2 cell2= 3 cell4= 1 cell5= 0 cell6= 0 cell7= 0 cell8= 2 cell9= 1 cell10= 0
Plage1: cell1= 2 cell2= 3 cell4= 1
Plage2: cell8= 2 cell9= 1
Somme = [Max(Plage1);Max(Plage2))]
Merci d'avance,
 

Pièces jointes

  • F_Max.xlsm
    15 KB · Affichages: 6

Zarzis

XLDnaute Nouveau
Avec des plages trimestrielles nommées
RE,
Merci pour votre retour, ce n’est pas ça qu'est-ce que je cherche. En fait, les plages ne sont pas définies ni par mois ni par trimestre. Je besoin un programme qui permet de chercher les cellules entre les zéros et les définir comme une plage. C’est compliquer vraiment j'ai essayé de créer un programme mais ça ne marche pas.
Merci,
 

Zarzis

XLDnaute Nouveau
RE,
Merci pour votre retour, ce n’est pas ça qu'est-ce que je cherche. En fait, les plages ne sont pas définies ni par mois ni par trimestre. Je besoin un programme qui permet de chercher les cellules entre les zéros et les définir comme une plage. C’est compliquer vraiment j'ai essayé de créer un programme mais ça ne marche pas.
Merci,
voici le code mais il fonctionne pas;
<
Function Max_Nacelle(plage As Range) As Integer
Application.Volatile
Dim colec As New Collection
Dim cel As Range
Dim Max As Integer
For Each cel In plage.Cells
On Error Resume Next
If cel.Value <> "" Then
colec.Add cel.Value, CStr(cel.Value)
End If
Max = Application.WorksheetFunction.Max(colec)

Next cel
Max_Nacelle = Max_Nacelle + Max

End Function
>
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

VB:
Function Max_Nacelle(plage As Range) As Double
    Dim datas, maxi As Double, col As Long
    datas = plage.Value
    For col = 1 To UBound(datas, 2)
        If datas(1, col) = 0 Then
            Max_Nacelle = Max_Nacelle + maxi: maxi = 0
        Else
            If datas(1, col) > maxi Then maxi = datas(1, col)
        End If
    Next col
    Max_Nacelle = Max_Nacelle + maxi
End Function
eric
 

Zarzis

XLDnaute Nouveau
Bonjour à tous,

VB:
Function Max_Nacelle(plage As Range) As Double
    Dim datas, maxi As Double, col As Long
    datas = plage.Value
    For col = 1 To UBound(datas, 2)
        If datas(1, col) = 0 Then
            Max_Nacelle = Max_Nacelle + maxi: maxi = 0
        Else
            If datas(1, col) > maxi Then maxi = datas(1, col)
        End If
    Next col
    Max_Nacelle = Max_Nacelle + maxi
End Function
eric
RE?
Je vous remerci bien le code fonctionne bien :)
 

Discussions similaires

Réponses
5
Affichages
144
Réponses
7
Affichages
346

Statistiques des forums

Discussions
312 189
Messages
2 086 033
Membres
103 102
dernier inscrit
nath34490