Bonjour à toutes et à tous,
Classeur avec une feuille par mois (Jan 09, Fev 09...). J'ai un code
(worksheet_change... par feuille) qui me colore police + cellule suivant la
saisie. Celà fonctionne très bien. Je souhaiterais qu'à l'ouverture du
classeur, l'utilisateur puisse avoir le choix (msgbox VbYesNo), soit de faire
fonctionner ce code soit non. (ex : Oui, les cellules de la feuille
sélectionnée se colorent en fonction, non, pas de couleur de fond et police
en noir) mais aussi qu'à l'aide d'un bouton, l'utilisateur puisse revenir en
arrière (annulation si coloration des cellules demandée).
Merci encore pour tout
Michel69
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
Une piste avec le code suivant ATTENTION : faites le test sur une COPIE de votre classeur
1) Dans le code des feuilles worksheet_change rajouter en 1ère ligne If OnColore = False Then Exit Sub ce qui va donner le code suivant ********************** Private Sub Worksheet_Change(ByVal Target As Range) If OnColore = False Then Exit Sub
'--- votre traitement ---
End Sub **********************
2) Dans ThisWorkbook copiez le code suivant ********************** Private Sub Workbook_Open() Dim reponse& reponse& = MsgBox("Coloriage ?", vbYesNo) If reponse& = vbYes Then OnColore = True Else OnColore = False End If End Sub ********************** (adaptez le MsgBox comme bon vous semble)
3) Dans un module standard copiez le code suivant ********************** Public OnColore As Boolean
Sub Decolore() Dim C As Range If TypeName(Selection) <> "Range" Then Exit Sub For Each C In Selection C.Font.ColorIndex = xlAutomatic C.Interior.ColorIndex = xlNone Next C End Sub **********************
Cordialement.
PMO Patrick Morange
Bonjour,
Une piste avec le code suivant
ATTENTION : faites le test sur une COPIE de votre classeur
1) Dans le code des feuilles worksheet_change rajouter en 1ère ligne
If OnColore = False Then Exit Sub
ce qui va donner le code suivant
**********************
Private Sub Worksheet_Change(ByVal Target As Range)
If OnColore = False Then Exit Sub
'--- votre traitement ---
End Sub
**********************
2) Dans ThisWorkbook copiez le code suivant
**********************
Private Sub Workbook_Open()
Dim reponse&
reponse& = MsgBox("Coloriage ?", vbYesNo)
If reponse& = vbYes Then
OnColore = True
Else
OnColore = False
End If
End Sub
**********************
(adaptez le MsgBox comme bon vous semble)
3) Dans un module standard copiez le code suivant
**********************
Public OnColore As Boolean
Sub Decolore()
Dim C As Range
If TypeName(Selection) <> "Range" Then Exit Sub
For Each C In Selection
C.Font.ColorIndex = xlAutomatic
C.Interior.ColorIndex = xlNone
Next C
End Sub
**********************
Une piste avec le code suivant ATTENTION : faites le test sur une COPIE de votre classeur
1) Dans le code des feuilles worksheet_change rajouter en 1ère ligne If OnColore = False Then Exit Sub ce qui va donner le code suivant ********************** Private Sub Worksheet_Change(ByVal Target As Range) If OnColore = False Then Exit Sub
'--- votre traitement ---
End Sub **********************
2) Dans ThisWorkbook copiez le code suivant ********************** Private Sub Workbook_Open() Dim reponse& reponse& = MsgBox("Coloriage ?", vbYesNo) If reponse& = vbYes Then OnColore = True Else OnColore = False End If End Sub ********************** (adaptez le MsgBox comme bon vous semble)
3) Dans un module standard copiez le code suivant ********************** Public OnColore As Boolean
Sub Decolore() Dim C As Range If TypeName(Selection) <> "Range" Then Exit Sub For Each C In Selection C.Font.ColorIndex = xlAutomatic C.Interior.ColorIndex = xlNone Next C End Sub **********************