macro bouton de commande avec option couleur et intitulé

Redzone

XLDnaute Nouveau
bonjoir je vais essayer d'etre concis dur dur en essayant de faire d'une pierre 2 coups
mon blem
j ai affecter une macro a un bouton de commande pour que les cellules sélectionnées apparaissent en couleurs juske la tvb je protege ma feuille j ajoute un activesheet "mdp" pour que ma macro fonctionne en protection de feuille voici le code

Sub nettoyage()
ActiveSheet.Unprotect "mdp"
Dim mCell As Range
For Each mCell In Selection
With mCell.Interior
.ColorIndex = 3 'orange
.Pattern = xlSolid
End With
Next
ActiveSheet.Protect "mdp", True, True, True
End Sub

mais en fait l utilisateur peut malgré tout changé de couleur n'importe qu'elle cellules dans la feuille protégée
ce qui est normal .... 'for each
j'aimerai savoir s'il etait possible d'affecter la macro qu'aux seules cellules qui sont deverrouillées
pour que l'utilisateur ne puisse pas changer de couleur d'autres cellules par inadvertance
a préciser que je suis un néophyte concernant la prog de code
j'aimerai savoir aussi pouvoir avec une macro ,,, genre je clik sur le bouton de commande et apparait ds la cellule
un mot n importe lequel du moins celui que j aurai choisit
merci de votre attention et vous souhaite une bonne journée soirée nuit matinée tit dejeuner café biere champagne etc voila apres ce tit pavé ca detends !
 

Efgé

XLDnaute Barbatruc
Re : macro bouton de commande avec option couleur et intitulé

Bonjour Redzone,
Deux propositions
Une pour la coloration
VB:
Sub nettoyage()
'Définis tes variables en tête de code
Dim mCell As Range
ActiveSheet.Unprotect "mdp"
For Each mCell In Selection
    If mCell.Locked = False Then
        With mCell.Interior
            .ColorIndex = 3
            'Pas obligatoire, option par dédaut
            .Pattern = xlSolid
        End With
    End If
Next mCell
ActiveSheet.Protect "mdp", True, True, True
End Sub

Une dans le même esprit pour écrire ;

VB:
Sub Ecriture()
Dim mCell As Range
Dim mTexte As String
mTexte = "Mon Mot"
ActiveSheet.Unprotect "mdp"
For Each mCell In Selection
    If mCell.Locked = False Then mCell.Value = mTexte
Next mCell
ActiveSheet.Protect "mdp", True, True, True
End Sub

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils