en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As
Integer
If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit
Function
For i = 1 To [plage].Rows.Count
If [plage].Cells(i) = ref Then
num = num + 1
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
Else
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
num = 0
End If
Next
Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max)
End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine-----
Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0
est
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
La Peche!
J'ai donc écrit ces lignes dans 'Visualiser le code' de ma feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à
l'appeler à partir de la cellule qui doit afficher la
réponse (j'y ai écrit "=Ecart_Max(0;A1:a13)" et il
m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine-----
bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As
Integer
If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit
Function
For i = 1 To [plage].Rows.Count
If [plage].Cells(i) = ref Then
num = num + 1
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
Else
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
num = 0
End If
Next
Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max)
End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine-----
Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0
est
J'ai donc écrit ces lignes dans 'Visualiser le code' de ma feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
michdenis
Bonjour La Peche,
Pour appeler une fonction personnalisée dans une feuille de calcul, tu dois copier le code de ta fonction obligatoirement dans un module standard.
Salutations!
"La Peche!" a écrit dans le message de news:1eff01c48d15$3eec9c20$ J'ai donc écrit ces lignes dans 'Visualiser le code' de ma feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
Bonjour La Peche,
Pour appeler une fonction personnalisée dans une feuille de calcul, tu dois copier le code de ta fonction obligatoirement
dans un module standard.
Salutations!
"La Peche!" <anonymous@discussions.microsoft.com> a écrit dans le message de news:1eff01c48d15$3eec9c20$a301280a@phx.gbl...
J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à
l'appeler à partir de la cellule qui doit afficher la
réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il
m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine-----
bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As
Integer
If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit
Function
For i = 1 To [plage].Rows.Count
If [plage].Cells(i) = ref Then
num = num + 1
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
Else
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
num = 0
End If
Next
Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max)
End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine-----
Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0
est
Pour appeler une fonction personnalisée dans une feuille de calcul, tu dois copier le code de ta fonction obligatoirement dans un module standard.
Salutations!
"La Peche!" a écrit dans le message de news:1eff01c48d15$3eec9c20$ J'ai donc écrit ces lignes dans 'Visualiser le code' de ma feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
J-Dan
La peche,
ta fonction doit figurer dans un module "standard". Lorsque tu te trouves dans l'éditeur VB, tu fais Insertion->Module (pas module de classe). Dans l'explorateur de projets (fenêtre qui se trouve sur la gauche), tu double-cliques sur le Module1 que tu viens d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine----- J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
.
La peche,
ta fonction doit figurer dans un module "standard".
Lorsque tu te trouves dans l'éditeur VB, tu fais
Insertion->Module (pas module de classe).
Dans l'explorateur de projets (fenêtre qui se trouve sur
la gauche), tu double-cliques sur le Module1 que tu viens
d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine-----
J'ai donc écrit ces lignes dans 'Visualiser le code' de
ma
feuille, catégorie '(Général)' mais je n'arrive pas à
l'appeler à partir de la cellule qui doit afficher la
réponse (j'y ai écrit "=Ecart_Max(0;A1:a13)" et il
m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine-----
bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As
Integer
If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit
Function
For i = 1 To [plage].Rows.Count
If [plage].Cells(i) = ref Then
num = num + 1
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
Else
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
num = 0
End If
Next
Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max)
End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine-----
Comment créer une formule "ECART.MAX(nombre;liste)"
qui
retourne la plus grande succession d'un nombre dans
une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0
est
ta fonction doit figurer dans un module "standard". Lorsque tu te trouves dans l'éditeur VB, tu fais Insertion->Module (pas module de classe). Dans l'explorateur de projets (fenêtre qui se trouve sur la gauche), tu double-cliques sur le Module1 que tu viens d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine----- J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
.
J-Dan
La peche,
si tu testes une repetition de valeur 0 dans une plage, il faut ajouter une condition pour éviter que plusieurs cellules vides consécutives ne soient prises en compte :
tu remplaces If [plage].Cells(i) = ref Then
par If [plage].Cells(i) = ref And [plage].Cells(i) <> _ VbNullString then
J-Dan
-----Message d'origine----- La peche,
ta fonction doit figurer dans un module "standard". Lorsque tu te trouves dans l'éditeur VB, tu fais Insertion->Module (pas module de classe). Dans l'explorateur de projets (fenêtre qui se trouve sur la gauche), tu double-cliques sur le Module1 que tu viens
d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine----- J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
.
.
La peche,
si tu testes une repetition de valeur 0 dans une plage,
il faut ajouter une condition pour éviter que plusieurs
cellules vides consécutives ne soient prises en compte :
tu remplaces
If [plage].Cells(i) = ref Then
par
If [plage].Cells(i) = ref And [plage].Cells(i) <> _
VbNullString then
J-Dan
-----Message d'origine-----
La peche,
ta fonction doit figurer dans un module "standard".
Lorsque tu te trouves dans l'éditeur VB, tu fais
Insertion->Module (pas module de classe).
Dans l'explorateur de projets (fenêtre qui se trouve sur
la gauche), tu double-cliques sur le Module1 que tu
viens
d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine-----
J'ai donc écrit ces lignes dans 'Visualiser le code' de
ma
feuille, catégorie '(Général)' mais je n'arrive pas à
l'appeler à partir de la cellule qui doit afficher la
réponse (j'y ai écrit "=Ecart_Max(0;A1:a13)" et il
m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine-----
bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction,
qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As
Integer
If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit
Function
For i = 1 To [plage].Rows.Count
If [plage].Cells(i) = ref Then
num = num + 1
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
Else
Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max)
num = 0
End If
Next
Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max)
End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine-----
Comment créer une formule "ECART.MAX(nombre;liste)"
qui
retourne la plus grande succession d'un nombre dans
une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0
est
si tu testes une repetition de valeur 0 dans une plage, il faut ajouter une condition pour éviter que plusieurs cellules vides consécutives ne soient prises en compte :
tu remplaces If [plage].Cells(i) = ref Then
par If [plage].Cells(i) = ref And [plage].Cells(i) <> _ VbNullString then
J-Dan
-----Message d'origine----- La peche,
ta fonction doit figurer dans un module "standard". Lorsque tu te trouves dans l'éditeur VB, tu fais Insertion->Module (pas module de classe). Dans l'explorateur de projets (fenêtre qui se trouve sur la gauche), tu double-cliques sur le Module1 que tu viens
d'inserer, et tu recopies le code de la fonction.
J-Dan
-----Message d'origine----- J'ai donc écrit ces lignes dans 'Visualiser le code' de ma
feuille, catégorie '(Général)' mais je n'arrive pas à l'appeler à partir de la cellule qui doit afficher la réponse (j'y ai écrit "ìart_Max(0;A1:a13)" et il m'affiche "#NOM?")
C'est vrai, je débute... :-)
-----Message d'origine----- bonjour La Peche,
en attendant mieux, tu peux essayer cette fonction, qui
teste les écarts sur une colonne :
Function Ecart_Max(ref As Variant, plage As Range) As Integer If [plage].Columns.Count > 1 Then Ecart_Max = 0: Exit Function For i = 1 To [plage].Rows.Count If [plage].Cells(i) = ref Then num = num + 1 Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) Else Ecart_Max = IIf(num > Ecart_Max, num, Ecart_Max) num = 0 End If Next Ecart_Max = IIf(Ecart_Max = 1, 0, Ecart_Max) End Function
est-ce que ça te convient ?
J-Dan
-----Message d'origine----- Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
.
.
.
.
Alain CROS
Bonjour.
Function Ecart_Max(Plage As Range, Ref) Dim Pl As Range, i& If [Plage].Columns.Count > 1& Then Ecart_Max = CVErr(xlErrRef): Exit Function For Each Pl In Plage If [Pl] = Ref And [Pl] <> "" Then i = i + 1& If i > Ecart_Max Then Ecart_Max = i Else i = 0& End If Next Pl End Function
Alain CROS
"La Peche!" a écrit dans le message de news: 1da401c48d06$9e48ae20$ Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est successif à lui même 6 fois au maximum.
Bonjour.
Function Ecart_Max(Plage As Range, Ref)
Dim Pl As Range, i&
If [Plage].Columns.Count > 1& Then Ecart_Max = CVErr(xlErrRef): Exit Function
For Each Pl In Plage
If [Pl] = Ref And [Pl] <> "" Then
i = i + 1&
If i > Ecart_Max Then Ecart_Max = i
Else
i = 0&
End If
Next Pl
End Function
Alain CROS
"La Peche!" <anonymous@discussions.microsoft.com> a écrit dans le message de news: 1da401c48d06$9e48ae20$a501280a@phx.gbl...
Comment créer une formule "ECART.MAX(nombre;liste)" qui
retourne la plus grande succession d'un nombre dans une
liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est
successif à lui même 6 fois au maximum.
Function Ecart_Max(Plage As Range, Ref) Dim Pl As Range, i& If [Plage].Columns.Count > 1& Then Ecart_Max = CVErr(xlErrRef): Exit Function For Each Pl In Plage If [Pl] = Ref And [Pl] <> "" Then i = i + 1& If i > Ecart_Max Then Ecart_Max = i Else i = 0& End If Next Pl End Function
Alain CROS
"La Peche!" a écrit dans le message de news: 1da401c48d06$9e48ae20$ Comment créer une formule "ECART.MAX(nombre;liste)" qui retourne la plus grande succession d'un nombre dans une liste ?
Par exemple:
pour liste en A1:A13 est 0;0;1;0;3;0;0;0;0;0;0;1;0
ECART.MAX(0; A1:A13) retourne alors 6 car le nombre 0 est successif à lui même 6 fois au maximum.