Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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,
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
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
Je suis désolé car le classeur appartient l'entreprise où je travaille et il contient des informations classées confidentielles.
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
 

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
799
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…