Calcul d'écarts maximums et d'écarts en cours

BUCA2

XLDnaute Nouveau
Bonjour,

Je dispose d'une série de chiffres ( 1, 2 , 3 , et 4 ) positionnés au hasard dans une colonne de la ligne 1 à la ligne 100.
Arrivé à la ligne 101 je souhaite connaître le nombre d'écarts maximum rencontré par le nombre 1 entre 2 apparitions , idem pour le 2 , le 3 et le 4.
Ensuite, au niveau de la fin de mon tableau à 1 colonne je souhaite connaître l'écart en cours pour chacun des nombres.
Ex : Ecart maxi de 20 entre 2 apparitions du 1 qui se trouve à l'écart en cours 6.
Si quelqu'un peut m'aider à trouver une formule ou une macro.
Merci. René.
 

adebrux

XLDnaute Occasionnel
Salut BUCA2, je sais pas si j'ai saisi ton probleme en entier, mais enfin, voilà un code qui marche et qui te trouve l'écart le plus grand entre 2 nombres identiques, par exemple le plus grand écart entre deux 1 consécutifs dans ton tableau.

Code:
Dim ecart, ecartmax As Integer
Dim start As Boolean

For i = 1 To 4 'si tu n'as que 4 valeurs à tester
    ecart = 0
    ecartmax = 0
    start = False
    For J = 1 To 100 'nombre de lignes sur lesquelles se trouvent tes valeurs
        ecart = ecart + 1
        If Cells(J, 1) = i Then
            If start = False Then
                start = True
                ecart = 0
            ElseIf start = True Then
                If ecartmax < ecart Then
                    ecartmax = ecart
                End If
                ecart = 0
            End If
        End If
    Next J
    Cells(i, 2).Value = ecartmax
Next i

Ensuite ca te marque le plus grand écart entre deux 1, deux 2, deux 3 et deux 4 dans les cellules B1, B2, B3, B4.

Si j'ai pas répondu à tout ton probleme merci de le faire savoir, et peut-être d'être un poil plus explicite sur les en-cours !

Bon courage

Arnaud
 
R

René

Guest
Merci beaucoup pour ta réponse. Concernant les écarts en cours cela signifie que lorsque l'on arrive au bout de la colonne l'on doit connaître quel est le dernier écart connu sur un chiffre.
Si l'on a 1.2.3.3.3.3.2.4.4.1.1.2.1.3.3.3.2.3
Ecart maxi du 1 est 8 et l'écart en cours est 5 puisqu'on ne trouve pas le 1 depuis 5 tirages ( 1 puis 33323 )
Ecart maxi du 2 est 4 et l'écart en cours est 1 puisqu'on ne trouve pas le 2 depuis 1 tirage ( 2 puis 3 )
Je vais faire marcher la première partie et merci bcp pour l'aide.
René
 

adebrux

XLDnaute Occasionnel
bon, il me fait des erreurs à chaque fois que j'essai d'envoyé ce fichier...

Voilà pour le code:


Code:
Dim ecart, ecartmax, encour As Integer
Dim start As Boolean

For i = 1 To 4 'si tu n'as que 4 valeurs à tester
    ecart = 0
    ecartmax = 0
    encour = 0
    start = False
    For J = 2 To 21 'nombre de lignes sur lesquelles se trouvent tes valeurs
        ecart = ecart + 1
        encour = encour + 1
        If Cells(J, 1) = i Then
            If start = False Then
                 start = True
                 ecart = 0
                 encour = 0
            ElseIf start = True Then
                 If ecartmax < ecart Then
                     ecartmax = ecart
                End If
                ecart = 0
                encour = 0
            End If
        End If
    Next J
    Cells(i + 1, 2).Value = ecartmax
    Cells(i + 1, 3).Value = encour
Next i

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 333
Messages
2 087 374
Membres
103 528
dernier inscrit
maro