IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Simplifier mon code


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Simplifier mon code
    Bonsoir,

    Je recherche a simplifier mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    For n = 3 To 50
     
    'Point normal
    If Cells(n, 4) < 162 And Cells(n, 4) > 0 Then
        If Cells(n, 4) <> 81 And Cells(n, 4) <> 91 And Cells(n, 4) <> 71 Then
                If Cells(n, 5) = 1 Then
                    If 162 - Cells(n, 4) = Cells(n, 8) Then
                    Cells(n, 8) = 162 - Cells(n, 4)
                    Cells(n, 4) = Cells(n, 4) + 20
                    End If
                Else
                Cells(n, 8) = 162 - Cells(n, 4)
                End If
        End If
    End If
    If Cells(n, 8) < 162 And Cells(n, 8) > 0 Then
        If Cells(n, 8) <> 81 And Cells(n, 8) <> 91 And Cells(n, 8) <> 71 Then
                If Cells(n, 9) = 1 Then
                    If 162 - Cells(n, 8) = Cells(n, 4) Then
                    Cells(n, 4) = 162 - Cells(n, 8)
                    Cells(n, 8) = Cells(n, 8) + 20
                    End If
                ElseIf Cells(n, 9) = 0 And Cells(n, 5) = 0 Then
                Cells(n, 4) = 162 - Cells(n, 8)
                End If
        End If
    End If
     
    If [H4] = 81 And [L1] <> 1 Then
    [H4] = 0
    [D4] = 81
    [A1] = 81
    [L1] = 1
    ElseIf [D4] = 81 And [L1] <> 1 Then
    [D4] = 0
    [H4] = 81
    [A1] = 81
    [L1] = 1
    End If
    If [A1] = 81 And [D5] <> 0 And [H5] <> 0 Then
       If [D5] < [H5] Then
       [H5] = [H5] + [A1]
       [A1] = 0
       ElseIf [D5] > [H5] Then
      [D5] = [D5] + [A1]
       [A1] = 0
        End If
    End If
    If [H5] = 81 And [L2] <> 1 Then
    [H5] = 0
    [D5] = 81
    [A1] = 81
    [L2] = 1
    ElseIf [D5] = 81 And [L2] <> 1 Then
    [D5] = 0
    [H5] = 81
    [A1] = 81
    [L2] = 1
    End If
    If [A1] = 81 And [D6] <> 0 And [H6] <> 0 Then
       If [D6] < [H6] Then
       [H6] = [H6] + [A1]
       [A1] = 0
       ElseIf [D6] > [H6] Then
      [D6] = [D6] + [A1]
       [A1] = 0
        End If
    End If
     
    Next
    End Sub
    Un fichier valant mieux qu'un long discours, veuillez voir la pièce jointe.
    D'avance merci à qui pourra m'aider.
    Cordialement
    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En plus de montrer ton code, il serait plus simple d'expliquer clairement en quelques phrases ce qui tu cherches à faire.
    Structure de ton classeur, organisation de tes feuilles etc ..
    Bref ce que tu as et ce que tu désires obtenir.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonsoir

    Comme je l'explique sur le fichier joint.

    Si le preneur est l'équipe2, quel réalise le score de 81 points, donc l'équipe1 réalise 81 points, les deux équipes sont en litige ( la belote à 162 points) c'est l'équipe qui ne prend pas qui perçoit les 81 points donc l'équipe1 et on réserver les 81 points restant dans une cellule a part, (ex A1)
    A chaque nouvel inscription de points on vérifie si cette cellule est = 81
    si oui on ajoute au score du preneur et on efface la valeur de A1
    Si non on marque le score normal.

    Mon code fonctionne mais j'aimerai le simplifier

    Merci et bonne soirée

    Max

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut

    Tu auras peut-être la réponse sur l'autre forum, qui sait

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je ne suis pas sure d’avoir compris ton problème mais regarde ça te métra peut-être sur la piste.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Robert,

    Je te remercie mais se n'est pas exactement cela, en faite quand une équipe marque 81 points, donc il y a litige, l'équipe qui ne prend pas marque c'est points donc 81 et les 81 points qui reste seras données à l'équipe qui auras fait le meilleurs score a la prochaine partie.

    Merci et bonne journée

    Max

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Max,
    Teste ça :
    ********************************************************************

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Sub MaMacro()
        Dim Myrange As Range 'Plage de cellules des scores
        'Instancié la plage.
        Dim L_JoueurA As Long
       Dim L_JoueurB As Long
       Dim L_Joueur As Long
        L_JoueurA = ActiveWorkbook.Worksheets("MaFeuille").Range("D4").CurrentRegion.Rows.Count
        L_JoueurB = ActiveWorkbook.Worksheets("MaFeuille").Range("h4").CurrentRegion.Rows.Count
        L_Joueur = L_JoueurA
        If L_JoueurA < L_JoueurB Then L_Joueur = L_JoueurB
        Set Myrange = ActiveWorkbook.Worksheets("MaFeuille").Range("D4:L" & 3 + L_Joueur)
        Dim L As Long
        'Pour L =1 jusqu'à la dernière ligne de la plage.
        For L = 1 To Myrange.Rows.Count
            Test162 Myrange, L, 1, 2, 5
            Test162 Myrange, L, 5, 6, 1
            Test81 L, Myrange
            Empoche81 L, Myrange
         Next
    End Sub
    Sub Empoche81(L, Myrange)
        If ActiveWorkbook.Sheets("MaFeuille").[a1] > 0 And Val(Myrange(L, 1)) <> 0 And Val(Myrange(L, 5)) <> 0 Then
            If Myrange(L, 1) < Myrange(L, 5) Then
                Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
            ElseIf Myrange(L, 1) > Myrange(L, 5) Then
                Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
                ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            End If
        End If
        If ActiveWorkbook.Sheets("MaFeuille").[a1] > 0 And Val(Myrange(L, 1)) > 161 And Myrange(L, 9) = 0 Then
             Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 5) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
             Myrange(L, 9) = 1
        End If
        If ActiveWorkbook.Sheets("MaFeuille").[a1] > 0 And Val(Myrange(L, 5)) > 161 And Myrange(L, 9) = 0 Then
             Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 1) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
    Sub Test81(L, Myrange)
        If Myrange(L, 5) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 5) = 0
            Myrange(L, 1) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        ElseIf Myrange(L, 1) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 1) = 0
            Myrange(L, 5) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
     
    Sub Test162(Myrange As Range, L As Long, ColA As Long, ColB As Long, ColC As Long)
        If Myrange(L, ColA) < 162 And Myrange(L, ColA) > 0 Then
            If Myrange(L, ColA) <> 81 And Myrange(L, ColA) <> 91 And Myrange(L, ColA) <> 71 Then
                If Myrange(L, ColB) = 1 Then
                    If 162 - Myrange(L, ColA) = Myrange(L, ColC) Then
                        Myrange(L, ColC) = 162 - Myrange(L, ColA)
                        Myrange(L, ColA) = Myrange(L, ColA) + 20
                    End If
                Else
                    Myrange(L, ColC) = 162 - Myrange(L, ColA)
                End If
            End If
        End If
        DoEvents
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Sub MaMacro()
        Dim Myrange As Range 'Plage de cellules des scores
        'Instancié la plage.
        Dim L_JoueurA As Long
       Dim L_JoueurB As Long
       Dim L_Joueur As Long
        L_JoueurA = ActiveWorkbook.Worksheets("MaFeuille").Range("D4").CurrentRegion.Rows.Count
        L_JoueurB = ActiveWorkbook.Worksheets("MaFeuille").Range("h4").CurrentRegion.Rows.Count
        L_Joueur = L_JoueurA
        If L_JoueurA < L_JoueurB Then L_Joueur = L_JoueurB
        Set Myrange = ActiveWorkbook.Worksheets("MaFeuille").Range("D4:L" & 3 + L_Joueur)
        Dim L As Long
        'Pour L =1 jusqu'à la dernière ligne de la plage.
        For L = 1 To Myrange.Rows.Count
            Test162 Myrange, L, 1, 2, 5
            Test162 Myrange, L, 5, 6, 1
            Test81 L, Myrange
            Empoche81 L, Myrange
         Next
    End Sub
    Sub Empoche81(L, Myrange)
        If Val(Myrange(L, 1)) <> 0 And Val(Myrange(L, 5)) <> 0 And Myrange(L, 9) <> 1 Then
            If Myrange(L, 1) < Myrange(L, 5) Then
                Myrange(L, 9) = 1
                Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
            ElseIf Myrange(L, 1) > Myrange(L, 5) And Myrange(L, 9) <> 1 Then
                 Myrange(L, 9) = 1
                Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
                ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            End If
        End If
        If Val(Myrange(L, 1)) > 161 And Myrange(L, 9) <> 1 Then
             Myrange(L, 9) = 1
             Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 5) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
             Myrange(L, 9) = 1
        End If
        If Val(Myrange(L, 5)) > 161 And Myrange(L, 9) <> 1 Then
             Myrange(L, 9) = 1
             Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 1) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
    Sub Test81(L, Myrange)
        If Myrange(L, 5) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 5) = 0
            Myrange(L, 1) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        ElseIf Myrange(L, 1) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 1) = 0
            Myrange(L, 5) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
     
    Sub Test162(Myrange As Range, L As Long, ColA As Long, ColB As Long, ColC As Long)
        If Myrange(L, ColA) < 162 And Myrange(L, ColA) > 0 Then
            If Myrange(L, ColA) <> 81 And Myrange(L, ColA) <> 91 And Myrange(L, ColA) <> 71 Then
                If Myrange(L, ColB) = 1 Then
                    If 162 - Myrange(L, ColA) = Myrange(L, ColC) Then
                        Myrange(L, ColC) = 162 - Myrange(L, ColA)
                        Myrange(L, ColA) = Myrange(L, ColA) + 20
                    End If
                Else
                    Myrange(L, ColC) = 162 - Myrange(L, ColA)
                End If
            End If
        End If
        If Myrange(L, ColA) > 161 And Myrange(L, 9) <> 1 Then
            Myrange(L, ColC) = 0
        End If
        If Myrange(L, ColA).Value <> "" And Myrange(L, ColA) = 0 And Myrange(L, 9) <> 1 Then
            Myrange(L, ColC) = 162
        End If
        DoEvents
    End Sub
    :cry:
    Dernière modification par AlainTech ; 09/02/2013 à 21h15. Motif: Fusion de 2 messages

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Robert,

    Je te remercie beaucoup, je pense que nous somme arriver sur la dernière version je fait tous les essaies possible et je te tiens au courant.

    Merci beaucoup

    @+

    Max

    Re,

    Je viens de m'apercevoir un détail pas négligeable.
    Si tu rentre 81 Pts dans "H4"
    "D4 auras 81 Pts et H4 auras 0Pts" normale il sont en litige,
    après tu rentre 100 Pts en "D5" il auras 100 + 81 du litige =181Pts et "H5 auras 62 Pts soit au total des deux parties 324 Pts, jusque la tous va bien..!
    Si tu click dans une cellule n’importe la quelle le 181 Pts se transforme en 100 Pts c'est à dire que si tu fait opération des cellules D5 et H5 = 162 au lieu de 243 Pts

    J’espère être assez clair pas toujours évident

    @+

    Max

  9. #9
    Invité
    Invité(e)
    Par défaut Une légère absence désolé.
    'J’ai testé quelque cas sans doute pas tous.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    Sub MaMacro()
        Dim Myrange As Range 'Plage de cellules des scores
        'Instancié la plage.
        Dim L_JoueurA As Long
       Dim L_JoueurB As Long
       Dim L_Joueur As Long
        L_JoueurA = ActiveWorkbook.Worksheets("MaFeuille").Range("D4").CurrentRegion.Rows.Count
        L_JoueurB = ActiveWorkbook.Worksheets("MaFeuille").Range("h4").CurrentRegion.Rows.Count
        L_Joueur = L_JoueurA
        If L_JoueurA < L_JoueurB Then L_Joueur = L_JoueurB
        Set Myrange = ActiveWorkbook.Worksheets("MaFeuille").Range("D4:L" & 3 + L_Joueur)
        Dim L As Long
        'Pour L =1 jusqu'à la dernière ligne de la plage.
        For L = 1 To Myrange.Rows.Count
            Test162 Myrange, L, 1, 5
            Test162 Myrange, L, 5, 1
            Test81 L, Myrange
            Empoche81 L, Myrange
         Next
    End Sub
    Sub Empoche81(L, Myrange)
        If Val(Myrange(L, 1)) <> 0 And Val(Myrange(L, 5)) <> 0 And Myrange(L, 9) <> 1 Then
            If Myrange(L, 1) < Myrange(L, 5) Then
                Myrange(L, 9) = 1
                Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
                 ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            ElseIf Myrange(L, 1) > Myrange(L, 5) And Myrange(L, 9) <> 1 Then
                 Myrange(L, 9) = 1
                Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
                ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            End If
        End If
        If Val(Myrange(L, 1)) > 161 And Myrange(L, 9) <> 1 Then
             Myrange(L, 9) = 1
             Myrange(L, 1) = Myrange(L, 1) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 5) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
             Myrange(L, 9) = 1
        End If
        If Val(Myrange(L, 5)) > 161 And Myrange(L, 9) <> 1 Then
             Myrange(L, 9) = 1
             Myrange(L, 5) = Myrange(L, 5) + ActiveWorkbook.Sheets("MaFeuille").[a1]
             Myrange(L, 1) = 0
             ActiveWorkbook.Sheets("MaFeuille").[a1] = 0
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
    Sub Test81(L, Myrange)
        If Myrange(L, 5) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 5) = 0
            Myrange(L, 1) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        ElseIf Myrange(L, 1) = 81 And Myrange(L, 9) <> 1 Then
            Myrange(L, 1) = 0
            Myrange(L, 5) = 81
            ActiveWorkbook.Sheets("MaFeuille").[a1] = ActiveWorkbook.Sheets("MaFeuille").[a1] + 81
            Myrange(L, 9) = 1
        End If
        DoEvents
    End Sub
     
    Sub Test162(Myrange As Range, L As Long, ColA As Long, ColC As Long)
        If Myrange(L, ColA) < 162 And Myrange(L, ColA) > 0 Then
            If Myrange(L, ColA) <> 81 And Myrange(L, ColA) <> 91 And Myrange(L, ColA) <> 71 Then
                If Myrange(L, 9) = 1 Then
                    If 162 - Myrange(L, ColA) = Myrange(L, ColC) Then
                        Myrange(L, ColC) = 162 - Myrange(L, ColA)
                        Myrange(L, ColA) = Myrange(L, ColA) + 20
                    End If
                Else
                    Myrange(L, ColC) = 162 - Myrange(L, ColA)
                End If
            End If
        End If
        If Myrange(L, ColA) > 161 And Myrange(L, 9) <> 1 Then
            Myrange(L, ColC) = 0
        End If
        If Myrange(L, ColA).Value <> "" And Myrange(L, ColA) = 0 And Myrange(L, 9) <> 1 Then
            Myrange(L, ColC) = 162
        End If
        DoEvents
    End Sub
    Dernière modification par SfJ5Rpw8 ; 31/01/2013 à 21h56.

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    J'ai toujours un petit problème lorsque tu click sur une cellule il rajoute du coté de la colonne D 20 points

    @+

    Max
    Fichiers attachés Fichiers attachés

  11. #11
    Invité
    Invité(e)
    Par défaut Voir pièce jointe.
    Là nous somme dans la partie de ton code que je n’ai pas retouché.
    J’avoue que je me suis posé la question !
    Voir pièce jointe.
    A+
    Images attachées Images attachées  

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    Écoute je vais voir sa de plus prêt je te tiens au courant.

    Je te remercie pour tous et te souhaite une très bonne soirée

    @+

    Max

    Re Robert

    J'ai essayé le code dans tous les sens sa fonctionne Nickel..!
    Par contre je n'arrive pas a ajouter mon code pour les belotes et les capots sa beug a chaque fois?
    Si tu as quelques minutes pour mettre les belotes et les capots sa m'arrangerai bien.

    Je te souhaite une bonne soirée

    Max

  13. #13
    Invité
    Invité(e)
    Par défaut Lles règles?
    voila les règles que je connais on est d’Accor ?
    Belote et rebelote 20 points ne sont garantis, même en cas de capot, dedans ou litige
    Un capot est réussi par une équipe si elle remporte les 8 plis de la donne. Valeur 252, si c'est l'équipe qui a pris qui est mise capot, on compte alors simplement un dedans (162) pour l'équipe adverse.

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Régles suivant les villes ?
    Bonjour Robert,

    C'est pratiquement cela, sauf pour les concours et suivant les villes qui s'autorisent des superflus.

    En fait les règles sont:

    La belote: = 20 Pts "elle est inviolable " ils sont garantis, même en cas de capot, dedans ou litige.

    Un capot: = est réussi par une équipe si elle remporte les 8 plis de la donne. Valeur 252 Pts ou 162 Pts suivant les villes pour cela ici "Liste déroulante?
    Si l'équipe qui réalise le capot et a aussi la belote on lui attribut les 20 Pts de la belote soit 272 Pts ou 182 Pts suivant les villes

    Un dedans: = l'équipe qui prend doit réaliser au moins 82 Pts ou 92 Pts si l'adversaire à la belote, si elle ne les réalise pas, on compte alors simplement un dedans 162 Pts pour l'équipe adverse, plus les 20 Pts de la belote si l' adverse à la belote.

    Je joint le fichier avec les explications.

    Bonne journée et merci pour tous.

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  15. #15
    Invité
    Invité(e)
    Par défaut Bien venu dans mon monde.
    Bonjour Max,
    Regarde ça c’est encore chaud.
    Fichiers attachés Fichiers attachés

  16. #16
    Invité
    Invité(e)
    Par défaut J’avai oublié le dedans.
    Je n’avais implémenté le code pour le dedans.
    Fichiers attachés Fichiers attachés

  17. #17
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Salut Robert,

    Attend, la feuille que somme entrain d'essayer de réaliser et juste pour contrôler les résultats des adhérents.
    Je m'explique les adhérents remplissent une feuille et marque les points qu'il fond, le temps qu'il joue la deuxième partie je doit contrôler les feuilles des points et pour cela j'ai besoin d'un code comme tu ma fait mais avec les belotes et les capots.
    Si tu veut je peut t'envoyer le fichier complet, j'ai du mettre 6 mois pour le faire avec l'aide de personne comme toi.
    Tiens moi au courant, je reste devant mon PC

    @+
    Max

  18. #18
    Invité
    Invité(e)
    Par défaut New
    Oui c’est vrais une explication est utile.
    J’ai déterminé mes propres types de variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Type Resultat
        Donne As Boolean
        Dedans As Boolean
        belote As Integer
        Pts As Integer
        Litige As Boolean
        Capot As Integer
    End Type
    Type Equipe
        Verouiller As Boolean
        Capot As Boolean
        Donne As Integer
     
        A As Resultat
        B As Resultat
    End Type
    Type partie
        Col As Integer
        Ligne As Integer
        Litige As Integer
        Equipes() As Equipe
    End Type
    Public Parties() As partie
    J’instancie un tableau sur ce type.
    J’initialise le tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub NewPartie()
    ReDim Parties(0)
    ReDim Parties(1)
    Parties(1).Col = 2
    Parties(1).Ligne = 16
    'Parties(2).Col = 9
    'Parties(2). Ligne = 20
    'Parties(3).Col = 16
    'Parties(3). Ligne = 20
     
    NewPartieDelCell Parties(1).Col, Parties(1).Ligne
    'NewPartieDelCell Parties(2).Col
    'NewPartieDelCell Parties(3).Col
    intit = True
    End Sub
    Je défini la dimension mon tableau a 1 élément (1 parie) précédemment 3
    Maintenant tu à qu’une parie
    Fichiers attachés Fichiers attachés

  19. #19
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    J'ai pas tous compris !

    si je rentre 100 en "B16" sa devient 0 et 162 en "F16" Pourquoi?
    Si je rentre 100 en "F17" j'ai 62 en "D17" normal après
    si je rentre 81 en "B18" sa devient 0 en "F18"normal après
    Si 100 en "F19" sa devient 243 et 0 en "B19" Pourquoi? je devrai avoir 181?

    @+

    Max

  20. #20
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For L = 1 To Myrange.Rows.Count
            ReDim Preserve Parties(partie).Equipes(L)
            Parties(partie).Equipes(L).Donne = QuiDonne(L, Col, Parties(partie).Equipes(L).Donne, Myrange)
            LirPts Parties(partie), L, Col, Myrange
            ValeursLirPts Parties(partie).Equipes(L)
            Capot Parties(partie).Equipes(L)
            Litige Parties(partie), L
            Dedans Parties(partie).Equipes(L)
            Afficher Parties(partie), L, Col, Myrange
        Next
    Dernière modification par SfJ5Rpw8 ; 01/02/2013 à 22h11.

Discussions similaires

  1. [XL-2007] Comment simplifier mon code VBA SVP?
    Par anthooooony dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2012, 10h59
  2. [XL-2007] Simplifier mon code ?
    Par hdisnice dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2011, 08h44
  3. Comment pourrais-je simplifier mon code
    Par pierrot10 dans le forum jQuery
    Réponses: 1
    Dernier message: 28/08/2010, 09h30
  4. Simplifier mon code
    Par pierre987321 dans le forum Langage
    Réponses: 5
    Dernier message: 07/04/2010, 12h49
  5. Simplifier mon code "Majuscule/Minuscule"
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2008, 17h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo