XL 2016 Format cellule Gras VBA

medsoft313

XLDnaute Nouveau
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.
 
Solution
Bonjour medsoft313, Jacky67,

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
A+

Jacky67

XLDnaute Barbatruc
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
 

medsoft313

XLDnaute Nouveau
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
Merci infiniment pour la réponse, j’aimerais combiné les touches CTRL+G au lieu du double click
 

medsoft313

XLDnaute Nouveau
J'ai mis ce code mais rien ne s'applique

VB:
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
 

Jacky67

XLDnaute Barbatruc
ça ne marche pas avec la plage sélectionnée et elle n'est pas verrouillée sauf la feuille qui protégé
A La protection; il faut autoriser format de cellule
1681223981232.png
 

Jacky67

XLDnaute Barbatruc
Oui il contient des codes VBA qui mettent la protection, plus d'explication sur l'enregistreur de macro
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
 

job75

XLDnaute Barbatruc
Bonjour medsoft313, Jacky67,

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
A+
 

Pièces jointes

  • Gras.xlsm
    17.2 KB · Affichages: 3

Discussions similaires

Réponses
12
Affichages
567

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95