Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 00h02   #1
Invité de passage
 
Inscription : avril 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 9
Points : 0
Points : 0
Par défaut Pronostic en Excel VBA

Bonjour,
Je débute en macro et j'aurais besoin d'aide !

Je souhaite créer une feuille excel pour un système de pronostic.


Je souhaiterais que ma macro compare le résultat du match par rapport aux pronostics des joueurs pour ensuite incrémenter les points du joueur.

Voici ce que j'ai réussi à faire:
Code :
1
2
3
4
5
Sub Calcul()
  If Range("G3").Value = Range("E3").Value Then
    Range("G243").Value = Range("G243").Value + 1
  End If
End Sub
Si la valeur en G3 est égale à la valeur en E3 alors, j'incrémente les points en G243 du joueur. Cependant cette macro ne fonctionne que pour le joueur 1.

J'aimerai que cette macro soit plus générique de façon à l'appliquer:
- aux autres joueurs (colonne G, ..., AB)
- aux autres matchs (3, ..., 242)
- et finalement incrémenter les points du joueur dans leur colonne respective (H243, ..., AB243)


Je vous remercie d'avance pour votre aide.
sivaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 00h32   #2
Membre éclairé
 
Inscription : juillet 2011
Messages : 141
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 141
Points : 382
Points : 382
Par défaut Pronostic en Excel VBA

Qu'en pensez-vous ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit ' Pronostic
' =============================== Description de la feuille Prono
Public Const rowMatchFirst = 3  ' rangée du premier match
Public Const rowMatchLast = 242 ' Dernier match
Public Const rowPlayerPoint = rowMatchLast + 1 ' Rangée des points des joueurs
 
Public Const colMatchScore = 5  ' Score du match
Public Const colPlayerFirst = 7 ' Colonne G du premier joueur
Public Const colPlayerLast = 28 ' Colonne AB du dernier joueur
 
Sub CalculProno()
Dim indRowMatch As Integer, indColPlayer As Integer
 
    Application.ScreenUpdating = False
    For indColPlayer = colPlayerFirst To colPlayerLast  ' Pour chaque joueur
        For indRowMatch = rowMatchFirst To rowMatchLast ' Pour chaque match
            If Cells(indRowMatch, indColPlayer).Value = Cells(indRowMatch, colMatchScore).Value Then
                Cells(rowPlayerPoint, indColPlayer).Value = Cells(rowPlayerPoint, indColPlayer).Value + 1
            End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub
Dans la fenêtre d'Exécution immédiate (Ctrl+G) du VBE (Visual Basic Editeur) d'Excel, copier-coller et valider par ENTER :
Dans une feuille vide, cette macro écrit la valeur 240 de G243 à AB243 car le score vide de chaque match est égal au pronostic vide de chaque joueur.
___________

Si la discussion est résolue, vous pouvez cliquer sur le bouton

En bas de ce message s'il vous a apporté des éléments de réponse pertinents, pensez également à voter en cliquant sur le bouton vert ci-dessous.
MattChess est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 00h53   #3
Invité de passage
 
Inscription : avril 2010
Messages : 9
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 9
Points : 0
Points : 0
Merci beaucoup pour ton aide, c'est bien ce que je voulais faire !
J'ai seulement rajouté une condition qui vérifie que le pronostic du match a bien été entré.

Voici mes modifications pour ceux que ca intéresse.
Code :
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
Option Explicit ' Pronostic
' ====================== Description de la feuille Prono
Public Const rowMatchFirst = 3  ' rangée du premier match
Public Const rowMatchLast = 242 ' Dernier match
Public Const rowPlayerPoint = rowMatchLast + 1 ' Rangée des points des joueurs
 
Public Const colMatchScore = 5  ' Score du match
Public Const colPlayerFirst = 7 ' Colonne G du premier joueur
Public Const colPlayerLast = 28 ' Colonne AB du dernier joueur
 
Sub CalculProno()
Dim indRowMatch As Integer, indColPlayer As Integer
 
    Application.ScreenUpdating = False
    For indColPlayer = colPlayerFirst To colPlayerLast  ' Pour chaque joueur
        For indRowMatch = rowMatchFirst To rowMatchLast ' Pour chaque match
        If (Cells(indRowMatch, colMatchScore).Value <> "") Then
            If Cells(indRowMatch, indColPlayer).Value = Cells(indRowMatch, colMatchScore).Value Then
                Cells(rowPlayerPoint, indColPlayer).Value = Cells(rowPlayerPoint, indColPlayer).Value + 1
            End If
        End If
        Next
    Next
    Application.ScreenUpdating = True
End Sub
sivaaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h50.


 
 
 
 
Partenaires

Hébergement Web