[Excel] Compter un nombre de 0 contigues (la suite de "0" la plus longue)

Didf Messages postés 21 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 12 mars 2008 - 28 nov. 2005 à 01:13
perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006 - 28 nov. 2005 à 10:38
Voila imaginons que dans une feuille excel, j'ai (de facon verticale):

2

3

0

0

5

4

0

7

8

41

0

0

0

0

0

5

2

0

0

0

4

...



j'aimerais que excel me sorte le nombre 5 correspondant a la suite de 0 la plus longue (ici 5 "0" a coté)



j'ai cherché dans les formules mais je ne trouve pas...



merci d'avance
A voir également:

3 réponses

perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006
28 nov. 2005 à 10:31
Hello.
J'ai jamais travailler sur Excel avec Vb donc comment tu récupères les données... j'en sais franchement rien... mais bon après pour la logique tu fais quelque chose du genre :

MonTableau() as Integer 'C'est un tableau d'entier avec tous tes nombres 2,3,0...là c'est à toi de le remplir je connais pas Excel...

Private Function Calcul (MonTableau() as Integer) as Integer
Dim i as Integer
Dim NbMaxElementDuTableau as Integer
Dim LaPlusGrandeSuite as Integer
Dim MaSuite as Integer
'Initialisation
NbMaxElementDuTableau = ??? 'à toi de le dire!!!
LaPlusGrandeSuite = 0
MaSuite = 0

'Détermination
For i=0 to NbMaxElementDuTableau - 1
If MonTableau(i) = 0 then
MaSuite = MaSuite + 1
Else
If MonTableau(i-1) = 0 Then
If MaSuite > LaPlusGrandeSuite then
LaPlusGrandeSuite = MaSuite
MaSuite = 0
End If
End If
End If
Next

'Restitution
Calcul = LaPlusGrandeSuite

End sub

J'ai pas testé mais je pense que ça doit fonctionner.
@+
0
lmb19 Messages postés 22 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 18 mai 2013 1
28 nov. 2005 à 10:34
Bonjour,



Il te faute créer une macro specifique.



Créé un bouton sur la feuille concernée et associe la macro suivante :



Private Sub CommandButton1_Click()

NbzeroMax = 0

ValMem = ""



For ligne = 1 To 100000

k = Cells(ligne, 1)



If k = 0 Then

NbzeroMax = NbzeroMax + 1

If Cells(ligne + 1, 1) <> 0 And (NbzeroMax > ZeroMem) Then

ValMem = Cells(ligne + 1, 1)

ZeroMem = NbzeroMax

NbzeroMax = 0

ligne = ligne + 1

End If

End If



If Cells(ligne + 1, 1) = "" Then

ligne = 100000

End If

Next



m = MsgBox(ValMem, vbOKOnly)



End Sub
0
perathoner Messages postés 90 Date d'inscription dimanche 5 novembre 2000 Statut Membre Dernière intervention 26 juillet 2006
28 nov. 2005 à 10:38
Oups...j'viens d'voire une erreur... sorry...
à la ligne "If MonTableau(i-1) = 0 Then " si i=0 (c'est à dire que le premier élément de ton tableau n'est pas un 0) alors y a une erreur ça fera ""If MonTableau(-1) = 0 Then " et c'est pas posiible... donc il faut que tu test "If i<>0 Then alors tu continu sinon tu passe.

encore désolé...
0
Rejoignez-nous