Boucle à deux conditions

Bonsoir à tous,

J'ai décidé de vous écrire car je débute sur VBA et je me retrouve complètement bloqué. J'ai bien lu tous vos cours (très intéressant par ailleurs) mais je n'ai pas trouvé la solution. Je vous explique donc ma situation.

Elle concerne un match de tennis par exemple. Je recherche à calculer quels sont les types de coups et les placements utilisés lorsque le joueur A marque un point. Puis pareil pour le joueur B. J'ai donc réalisé ce tableau (ci-joint) qui montre l'exemple sur neuf point joués. Mais il me faut programmer en imaginant qu'il peut y en avoir plus ou moins.

7excel-ex.xlsm (18.58 Ko)

Je pensais donc utiliser une fonction While en ce sens. Et en imbriquer une autre car je ne peux pas non plus anticiper combien de coups seront échangés lors de chaque point. J'avais donc commencé à écrire ceci :

Sub TT()

l = 3

c = 4

While ActiveSheet.Cells(l, 4).Value <> nbNullString

While ActiveSheet.Cells(3, c).Value <> nbNullString

Mais je me retrouve bloqué pour plusieurs raisons : il me faut réussir faire la distinction lorsqu'il s'agit d'un "coup" ou d'un "placement" et ensuite il faut faire la distinction entre "joueur A" et "joueur B".

Dans un premier temps j'ai pensé utilisées les colonnes impaires pour un joueur et paires pour l'autre mais je ne peux pas car ce n'est pas le cas. Ce sont les "coups" qui sont paires et les "plct" impaires :/

Une âme charitable pourrait-elle m'aider en cette période de confinement ? Car j'ai pensé à de nombreuses possibilités mais mes connaissances en VBA sont limitées pour résoudre ce problème.

En vous remerciant par avance et en espérant à avoir été suffisamment clair dans mon explication.

Je reste bien sûr disponible si vous avez besoin de plus de précisions pour m'aider.

Merci infiniment d'avance

Bonjour !

Un essai avec une fonction personnalisée sous Excel :

elle admet trois paramètres : la cellule où se trouve le texte recherché, la cellule de référence du joueur pour lequel on doit faire les calcules, et la référence de la plage de donnée que j'ai nommé "QUOI" :

Function LouReeD(Cel_Ref As Range, Rng_Ref As Range, Plage As Range)
    Dim Cpt, Cel As Range
    If Cel_Ref.Value <> "" Then
        For Each Cel In Plage
            If Cel.Interior.Color = Rng_Ref.Interior.Color Then
                If Cel.Value = Cel_Ref.Value Then Cpt = Cpt + 1
            End If
        Next Cel
    End If
    LouReeD = IIf(Cpt = 0, "-", Cpt)
End Function

Ensuite le calcul se fait en fonction de la couleur des cellules et du texte recherché.

Si c'est égale à 0 alors on affiche "-"

Le fichier :

4excel-ex.xlsm (27.45 Ko)

@ bientôt

LouReeD

Bonjour LouReeD !

Merci énormément

Pas de quoi !

Merci pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "boucle deux conditions"