Bonjour à tous,
J'ai un fichier Excel en VBA protéger par mot de passe, la plupart des cellules sont verrouillé sauf la plage E20:E48 de ma feuille.
J'aimerais que utilisateur puisse mettre le texte écrit dans cette plage en gras cette option est facultatif.
J'ai trouvé ce code
Worksheets("Sheet1").Range("E20:E48").Font.Bold = True
mais le problème et que le format de la plage se transforme en gras dès l'écriture alors que moi je veux cette option est facultatif.
Merci d'avance.
Voyez le fichier joint et ces 2 macros avec leurs raccourcis clavier :
VB:
Sub Gras()
'raccourci clavier Ctrl+g
With Sheets("Feuil1")
If ActiveSheet.Name <> .Name Then Exit Sub
If Intersect(ActiveCell, .[E20:E48]) Is Nothing Then Exit Sub
.Protect "toto", UserInterfaceOnly:=True
ActiveCell.Font.Bold = True
End With
End Sub
Sub NonGras()
'raccourci clavier Ctrl+G
With Sheets("Feuil1")
If ActiveSheet.Name <> .Name Then Exit Sub
If Intersect(ActiveCell, .[E20:E48]) Is Nothing Then Exit Sub
.Protect "toto", UserInterfaceOnly:=True
ActiveCell.Font.Bold = False
End With
End Sub
Bonjour à tous,
J'ai un fichier Excel en VBA protéger par mot de passe, la plupart des cellules sont verrouillé sauf la plage E20:E48 de ma feuille.
J'aimerais que utilisateur puisse mettre le texte écrit dans cette plage en gras cette option est facultatif.
J'ai trouvé ce code
Worksheets("Sheet1").Range("E20:E48").Font.Bold = True
mais le problème et que le format de la plage se transforme en gras dès l'écriture alors que moi je veux cette option est facultatif.
Merci d'avance.
Bonjour,
Quelle est cette option facultative ??
Une proposition sur double clic dans la plage E20:E48
Un double clic fera alternativement en gras ou pas
Le code à placer dans le module de la feuille en question
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [e20:e48]) Is Nothing Then Exit Sub
Cancel = True
[e20:e48].Font.Bold = Not [e20:e48].Font.Bold
End Sub
Bonjour,
Quelle est cette option facultative ??
Une proposition sur double clic dans la plage E20:E48
Un double clic fera alternativement en gras ou pas
Le code à placer dans le module de la feuille en question
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, [e20:e48]) Is Nothing Then Exit Sub
Cancel = True
[e20:e48].Font.Bold = Not [e20:e48].Font.Bold
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count = 1 And Target.Column = 5 And Target.Row >= 20 And Target.Row <= 48 Then
Application.SendKeys ("^g") ' Appliquer la combinaison Ctrl+G
Target.Font.Bold = Not Target.Font.Bold ' Inverser la mise en forme en gras de la cellule sélectionnée
End If
End Sub
Bonjour Jacky67 et merci pour la réponse, effectivement j'ai appliqué cette autorisation mais à chaque fermeture du fichier et ouverture la case se décoche et je n'ai pas trouvé de solution.
Bonjour Jacky67 et merci pour la réponse, effectivement j'ai appliqué cette autorisation mais à chaque fermeture du fichier et ouverture la case se décoche et je n'ai pas trouvé de solution.
Ce classeur contient certainement des codes VBA qui mettent la protection. il faut donc modifié ce code.
Par l'enregistreur de macro, en faisant la manipulation de protection, on peut récupérer ce code.
A toi de voir
Re..
L'enregistreur de macro se trouve dans le menu==>développeur
Sans voir le code , ce sera difficile
Il faut ajouter au code existant cette instruction ==>AllowFormattingCells:=True
Il peut ressembler à ceci
ActiveSheet.Protect xxx, yyy, zzz, AllowFormattingCells:=True
Voyez le fichier joint et ces 2 macros avec leurs raccourcis clavier :
VB:
Sub Gras()
'raccourci clavier Ctrl+g
With Sheets("Feuil1")
If ActiveSheet.Name <> .Name Then Exit Sub
If Intersect(ActiveCell, .[E20:E48]) Is Nothing Then Exit Sub
.Protect "toto", UserInterfaceOnly:=True
ActiveCell.Font.Bold = True
End With
End Sub
Sub NonGras()
'raccourci clavier Ctrl+G
With Sheets("Feuil1")
If ActiveSheet.Name <> .Name Then Exit Sub
If Intersect(ActiveCell, .[E20:E48]) Is Nothing Then Exit Sub
.Protect "toto", UserInterfaceOnly:=True
ActiveCell.Font.Bold = False
End With
End Sub