Mise en forme en tableau pour compteur

Bonsoir,

J'avais réalisé un petit code ; tant que le nombre de lignes n'était pas conséquent, ça ne prenait pas beaucoup de temps.

Là, la base devient importante et j'éprouve encore des difficultés à maîtriser les arrays.

L'un de vous pourrait-il m'aider à transcrire ce code avec des commentaires afin que j'apprenne dans le même temps ?

Voici le code : je réduis un numéro en supprimant l'extension après le point et je convertis le numéro (en format texte, contrainte d'une autre macro) en format nombre standard ; et cela, pour chaque cellule d'une colonne. Je balaie de nouveau la colonne pour déterminer le maximum afin d'incrémenter une cellule.

Sub Test1()
    Dim num As Variant, reponse As Double
    For Each num In Range("I9:I" & Range("I65536").End(xlUp).Row)
    num.Offset(0, 2) = Left(num, InStrRev(num, ".") - 1)
    Next
    Range("K9:K" & Range("K65536").End(xlUp).Row).NumberFormat = "General"
    reponse = Application.WorksheetFunction.Max(Range("K9:K" & Range("K65536").End(xlUp).Row))
    If reponse >= Cells(3, 12) Then
    Cells(3, 12) = reponse + 1
    End If
    Range("K9:K" & Range("K65536").End(xlUp).Row).ClearContents
End Sub

En vous remerciant pour vos réponses.

Diane.

Je te propose la simplification suivante :

Sub Test2()
        Dim num As Variant, Reponse As Double
        Reponse = 1
        For Each num In Range("I9:I" & Range("I65536").End(xlUp).Row)
            If Left(num, InStrRev(num, ".") - 1) > Reponse Then
                Reponse = Left(num, InStrRev(num, ".") - 1)
            End If
        Next
        Cells(3, 12) = Reponse + 1
 End Sub

Super ! Beaucoup plus élégant. J'ai juste modifié >= pour tenir compte des valeurs supérieures de la cellule (12,3).

Merci beaucoup, je te souhaite une bonne soirée.

Rechercher des sujets similaires à "mise forme tableau compteur"