Explication code VBA
Résolu/Fermé
snakyball
Messages postés
7
Date d'inscription
jeudi 14 novembre 2013
Statut
Membre
Dernière intervention
8 janvier 2014
-
Modifié par snakyball le 8/01/2014 à 10:25
snakyball Messages postés 7 Date d'inscription jeudi 14 novembre 2013 Statut Membre Dernière intervention 8 janvier 2014 - 8 janv. 2014 à 14:40
snakyball Messages postés 7 Date d'inscription jeudi 14 novembre 2013 Statut Membre Dernière intervention 8 janvier 2014 - 8 janv. 2014 à 14:40
A voir également:
- Explication code VBA
- Le code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code telephone oublié - Guide
- Code gta 4 ps4 - Guide
2 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 257
Modifié par eriiic le 8/01/2014 à 10:51
Modifié par eriiic le 8/01/2014 à 10:51
Bonjour,
La Function InRange() te retourne True si tu as une intersection entre les 2 plages fournies, False Sinon.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...
If InRange(Target, grille) Then
Si l'utilisateur a cliqué dans la grille on traite, sinon endif et fin de procédure (on quitte sans rien faire)
Gagné-perdu.
Il faut indenter correctement le code pour pouvoir le lire et mieux le comprendre.
eric
PS: version correctement indentée :
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
La Function InRange() te retourne True si tu as une intersection entre les 2 plages fournies, False Sinon.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
...
If InRange(Target, grille) Then
Si l'utilisateur a cliqué dans la grille on traite, sinon endif et fin de procédure (on quitte sans rien faire)
Gagné-perdu.
Il faut indenter correctement le code pour pouvoir le lire et mieux le comprendre.
If memoriser_grille(Target.Row - Range("top").Row, Target.Column - Range("top").Column) = 1 Then 'gagné else 'perdu endif
eric
PS: version correctement indentée :
Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If jeu = 1 Then If InRange(Target, grille) Then If memoriser_grille(Target.Row - Range("top").Row, Target.Column - Range("top").Column) = 1 Then Target.Interior.ColorIndex = 10 'colorier la cellule indiquer temp_count = 0 For i = 0 To taille For j = 0 To taille If (grille.Cells(i + 1, j + 1).Interior.ColorIndex = 10) Then temp_count = temp_count + 1 Next j Next i If temp_count = coloriage_cellule Then jeu = 0 user_response = MsgBox("Vous avez gagné !!! " & vbCrLf & "Voulez vous rejouer une autre partie ?", vbYesNo + vbQuestion) grille.Interior.ColorIndex = 2 Select Case user_response Case vbYes generer Case vbNo End Select End If Else For i = 0 To taille For j = 0 To taille grille.Cells(i + 1, j + 1).Interior.ColorIndex = 2 If memoriser_grille(i, j) = 1 Then grille.Cells(i + 1, j + 1).Interior.ColorIndex = 10 Next j Next i jeu = 0 user_response = MsgBox("vous avez perdu !!!" & vbCrLf & "Voulez vous rejouer ?", vbYesNo + vbQuestion) grille.Interior.ColorIndex = 2 'remettre la grille en blanc Select Case user_response Case vbYes generer Case vbNo End Select End If End If End If End Sub
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu lorsque c'est le cas (en haut vers votre titre).
Merci
snakyball
Messages postés
7
Date d'inscription
jeudi 14 novembre 2013
Statut
Membre
Dernière intervention
8 janvier 2014
8 janv. 2014 à 14:40
8 janv. 2014 à 14:40
Et bien, merci pour cette réponse ! Nous allons désormais essayer de bien comprendre, mais c'est déjà plus clair !