Macro sur Excel

  • Auteur de la discussion Skippy 666
  • Date de début

Skippy 666

Nouveau membre
Bonjour j'aurai besoin de vos lumières.
Ci joint la macro créée
Private Sub Worksheet_Activate()

End Sub
Sub Macro1()
Range("E5").Select
ActiveCell.FormulaR1C1 = "1"
Range("A30:G35").Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.SmallScroll Down:=15
Range("A46:G51").Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
ActiveWindow.SmallScroll Down:=-24
Range("E7").Select
End Sub
Sub Macro2()
Range("E5").Select
Selection.ClearContents
Range("A30:G35").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("C31:C32,C34").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 13434828
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A46:G51").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("C47:C48,C50").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 13434828
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("E7").Select
End Sub

Vous remarquerez que j'ai essayer de l'automatiser mais sans succès !
D'autre part, au lieu de coloré la plage de cellule, au moment ou le chiffre 1 est saisi, je souhaiterai qu'aucune données ne puissent être inscrite, sachant que le classeur est déjà verrouillé.
D'autre part, la macro 2 inverse se phénomène.
Donc en résumant si E5=1 => blocage des cellules, si la case E5=vide ou 0 déverrouillage des cellules.

J’espère avoir été clair et avoir une réponse de votre part.
D'avance merci
 

drul

Obscur pro du hardware
Staff
Si je résume, tu veux que quand tu mets "1" dans la cellule E5, les cellule "A30 à G35 soient vérouillée ? puis lorsque tu mets 0 dans E5, elles se dévérouille ?

STP la prochaine fois utilise la balise code^pour mettre ton prg à l'intérieur.
également indente ton code stp, et évite les select et selection. se sera beaucoup plus lisible.
 

Skippy 666

Nouveau membre


Désoler pour les erreurs mais je poste rarement, oui en effet tu as bien compris le but de ma demande
 

drul

Obscur pro du hardware
Staff

Salut,
Dans l'objet workbook déclare la sub suivante
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Range("E5").Text = "1" Then
    Sh.Protect
ElseIf Range("E5").Text = "0" Then
    Sh.Unprotect
End If
End Sub
Puis sur ton tableau Excel enlève la propriété "verouiller" (format de cellule, onglet protection de toutes les cellules que tu souhaite pouvoir modifié quand E5 = 1 (donc il faut au moins le faire pour E5, sinon tu ne pourras plus la remettre à 0).

En espérant que cela t'aide.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 060
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut