Explication code VBA
Résolu
snakyball
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
snakyball Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
snakyball Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Explication code VBA
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
2 réponses
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