quicktibong
XLDnaute Nouveau
Bonjour,
je suis nouvelle sur ce forum et cela fait à peine quelques semaines que j'utilise le VBA.
Voici donc ce que j'aimerais faire, mais je n'y arrive pas...
Dans un onglet nommé "TM1" j'ai un tableau avec les colonnes suivantes : "Chose1" , "Chose2" , "Chose3" , "Temps".
J'aimerais que mon programme parcoure mon tableau tant que "Chose1" , "Chose2" et "Chose3" de la ligne de départ est identique à "Chose1" , "Chose2" et "Chose3" de la ligne d'en dessous. Une fois qu'il trouve une des choses de différentes, il doit me faire la moyenne des temps de toutes les lignes parcourues et l'inscrire dans la cellule juste à droite de celle contenant le temps de la dernière ligne parcourue.
Pour faire ma moyenne, j'avais imaginé faire la somme des temps et la diviser par la différence entre le numéro de la dernière ligne et le numéro de la première ligne.
Je ne sais pas si c'est bien clair mais je vous mets en dessous le morceau de programme que j'ai écris. Il est bien évidement incomplet et il manque la partie où je dois faire la moyenne mais je ne sais pas trop où la mettre...
En espérant que vous pourrez m'apporter au moins une aide si ce n'est une solution à mon problème.
En tous cas, je vous en remercie par avance.
je suis nouvelle sur ce forum et cela fait à peine quelques semaines que j'utilise le VBA.
Voici donc ce que j'aimerais faire, mais je n'y arrive pas...
Dans un onglet nommé "TM1" j'ai un tableau avec les colonnes suivantes : "Chose1" , "Chose2" , "Chose3" , "Temps".
J'aimerais que mon programme parcoure mon tableau tant que "Chose1" , "Chose2" et "Chose3" de la ligne de départ est identique à "Chose1" , "Chose2" et "Chose3" de la ligne d'en dessous. Une fois qu'il trouve une des choses de différentes, il doit me faire la moyenne des temps de toutes les lignes parcourues et l'inscrire dans la cellule juste à droite de celle contenant le temps de la dernière ligne parcourue.
Pour faire ma moyenne, j'avais imaginé faire la somme des temps et la diviser par la différence entre le numéro de la dernière ligne et le numéro de la première ligne.
Je ne sais pas si c'est bien clair mais je vous mets en dessous le morceau de programme que j'ai écris. Il est bien évidement incomplet et il manque la partie où je dois faire la moyenne mais je ne sais pas trop où la mettre...
En espérant que vous pourrez m'apporter au moins une aide si ce n'est une solution à mon problème.
En tous cas, je vous en remercie par avance.
Code:
Sub Moyenne_des_temps()
Dim CelluleCourante As Range
Dim CelluleSuivante As Range
Dim NumPremièreLigne As String
Dim NumDernièreLigne As String
Set TM1 = Worksheets("TM1")
Set CelluleCourante = TM1.Range("H1")
'Boucle Tant Que ...
Do While Not IsEmpty(CelluleCourante) = True
Set CelluleSuivante = CelluleCourante.Offset(1, 0)
'Set NumPremièreLigne = CelluleCourante.Row
If CelluleSuivante.Value = CelluleCourante.Value Then
If LignesIdentiques(CelluleCourante, CelluleSuivante) = True Then
Set CelluleCourante = CelluleSuivante
End If
End If
Set CelluleCourante = CelluleSuivante
Loop
End Sub
Function LignesIdentiques(CellCourante As Range, CellSuivante As Range) As Boolean
If CellCourante.Offset(0, 1).Value <> CellSuivante.Offset(0, 1).Value Then
LignesIdentiques = False
ElseIf CellCourante.Offset(0, 2).Value <> CellSuivante.Offset(0, 2).Value Then
LignesIdentiques = False
Else
LignesIdentiques = True
End If
End Function