Macro-Protection

Cruz

XLDnaute Occasionnel
slt tout le monde
J'aimerais savoir s'il est possible avec une macro de dire:
'Dans cette feuille j'insère une protection à code 'A', seuls les cases de couleur rose sont dévérouillés donc disponible'

merci d'avance a+
 

ZZR09

XLDnaute Occasionnel
Salut Cruz, le forum

On peut afficher ce message à l'ouverture du fichier en plaçant le code suivant dans ThisWorkbook:

Code:
Private Sub Workbook_Open()
msgbox'Dans cette feuille j'insère une protection à code,' & vbcr & _
'seules les cases de couleur rose sont dévérouillées, donc disponibles', vbokonly, , 'Avertissement'
End Sub

ou lors de l'activation d'une feuille dans la feuille en question :
Code:
Private Sub Worksheet_Activate()
msgbox'Dans cette feuille j'insère une protection à code,' & vbcr & _
'seules les cases de couleur rose sont dévérouillées, donc disponibles', vbokonly, , 'Avertissement'
End Sub

Ci-joint un fichier exemple
A+

;) [file name=msgOuvActiv.zip size=5520]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/msgOuvActiv.zip[/file]
 

Pièces jointes

  • msgOuvActiv.zip
    5.4 KB · Affichages: 18

Cruz

XLDnaute Occasionnel
slt ZZR09

merci de m'avoir répondu mais en fait le but de ma recherche c'est que ces cases roses peuvent changés grâce à la mise en forme conditionnelle, par exemple un jour A1 et A2 sont en rose et un autre jour c'est A3 qui est en rose
 

ZZR09

XLDnaute Occasionnel
Re,

Alors là je suis désolé mais je n'ai pas bien compris la question, vous voulez une message adressé à l'utilisateur ou une formule, un code pour dévérouiller automatiquement des cellules correspondant à une critère de couleur de remplissage :huh:

A+ :)
 

ZZR09

XLDnaute Occasionnel
Slt,

Voici un code qui dévérouille les cellules coloriées comme A2.

Code:
Sub colortest()
Dim color As Byte
Dim c As Range

color = Range('A2').Interior.ColorIndex

On Error Resume Next

'Réinitialisation
ActiveSheet.Unprotect
For Each c In Range('B1', Cells(1, 2).SpecialCells(xlLastCell))
    c.Select
    Selection.Locked = True
Next c

'Dévérouillage sélectif
For Each c In Range('B1', Cells(1, 2).SpecialCells(xlLastCell))
    c.Select
    If c.Interior.ColorIndex = color Then
        Selection.Locked = False
    End If
Next c
ActiveSheet.Protect

Range('A1').Select
End Sub

La partie 'réinitialisation' remet tout par défaut (vérouillé)
Est-ce mieux répondre à la question?

A+


;) [file name=msgOuvActiv_20051001233612.zip size=8441]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/msgOuvActiv_20051001233612.zip[/file]
 

Pièces jointes

  • msgOuvActiv_20051001233612.zip
    8.2 KB · Affichages: 6

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal