HUGUESEXCEL
XLDnaute Nouveau
Bonjour,
Malgré mes recherches je n'ai pas trouvé de réponse à mon problème.
A savoir limiter l'exécution d'une macro sur certaines plages de cellules et exclusivement sur certaines plages.
Le code ci après ne fonctionne qu'a moitié
La macro s'exécute sur des selections de plage à cheval sur les bornes "range"
Sub heures_test()
Dim MaPlage
Dim MaPlage2
Dim MaPlage3
Dim cellule, cellule2
Dim Ok, Tout As Boolean
Set MaPlage = Range("A1:BD5,A22:BD25,A42:BD45,A62:BD65,A82:BD85")
Set MaPlage2 = Range("A1:B85,AA1:AD85,BC1:BD85")
Set MaPlage3 = Range("AB66:BD85")
'Boucle qui permet pour chaque cellule de la sélection contigu ou non de vérifier
'si elles sont présentes dans la plage que tu définit
Tout = False
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
'Selection.Font.Bold = True
Else
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage2
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
'Selection.Font.Bold = True
Else
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage3
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
Else
Call DifférentGriser("1", 6, 6)
End If
End If
End If
End Sub
Merci
Hugues
Malgré mes recherches je n'ai pas trouvé de réponse à mon problème.
A savoir limiter l'exécution d'une macro sur certaines plages de cellules et exclusivement sur certaines plages.
Le code ci après ne fonctionne qu'a moitié
La macro s'exécute sur des selections de plage à cheval sur les bornes "range"
Sub heures_test()
Dim MaPlage
Dim MaPlage2
Dim MaPlage3
Dim cellule, cellule2
Dim Ok, Tout As Boolean
Set MaPlage = Range("A1:BD5,A22:BD25,A42:BD45,A62:BD65,A82:BD85")
Set MaPlage2 = Range("A1:B85,AA1:AD85,BC1:BD85")
Set MaPlage3 = Range("AB66:BD85")
'Boucle qui permet pour chaque cellule de la sélection contigu ou non de vérifier
'si elles sont présentes dans la plage que tu définit
Tout = False
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
'Selection.Font.Bold = True
Else
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage2
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
'Selection.Font.Bold = True
Else
For Each cellule In Selection
Ok = False
For Each cellule2 In MaPlage3
If cellule2.Address = cellule.Address Then Ok = True
If Ok Then Exit For 'On a trouvé l'adresse de la cellule dans MaPlage
Next
Tout = Ok
If Tout = False Then Exit For
'Une adresse des cellules sélectionnées n 'est pas dans MaPlage
Next
If Tout Then
MsgBox "Tu ne peux pas saisir d'horaires à cet endroit"
Else
Call DifférentGriser("1", 6, 6)
End If
End If
End If
End Sub
Merci
Hugues