Texte en gras et déverouillage du fichier

Bonjour,

Voici un fichier que je souhaite utiliser pour contrôler les objectifs de mes collaborateurs.

Je souhaite ajouter que lorsque je double click sur la cellule le texte devient gras (en plus de la couleur) et si je redouble click le texte redevient normal (la couleur disparait)

Je souhaite également verrouiller la feuille (avec un mot de passe). Je n'arrive pas à intégrer que la feuille se déverrouille quand je clique sur une cellule b7 à f9 par exemple, que la note aille se mettre dans I7 à M) et que le fichier se verrouille à nouveau, etc pour l'objectif 2

D'avance merci pour votre précieuse aide

Bonne journée

13classeur1.xlsm (19.13 Ko)

Stéphane

Bonjour,

Voici un essai pour votre premier problème :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
cancel = true
with target.font
    .bold = not .bold
end with
end sub

Pour le second, je n'ai pas compris mais en général, on fait ceci :

sub test()
sheets(1).unprotect mdp
'code avec modifications
sheets(1).protect mdp
end sub

Cdlt,

Bonjour

Merci pour votre réponse qui m'aide beaucoup

Concernant la mise en gras cela fonctionne bien si par exemple je sélectionne la cellule D8 en double cliquant. La cellule devient colorée et le texte se met en gras.

Si je constate que je me suis trompé et que je voulais sélectionner la cellule E8 cela fonctionne bien si en premier je double clique sur la cellule D8 pour effacer la couleur et le gras et qu'ensuite je double clique sur la cellule E8. Cependant si je clique directement sur la cellule E8, la couleur disparait de la cellule D8 et va sur la cellule E8. Je souhaite la même chose pour le texte en gras.

Re,

Je ne suis pas sûr de comprendre, notamment car je n'ai pas vu le code.

Le code que j'ai proposé pour le gras est censé fonctionner pour une seule cellule : un double-clic change la valeur (true/false) de la propriété .bold (gras).

Si vous souhaitez gérer les cellules à côté de la cellule double-cliquée, je crains que ce soit assez délicat sans règle bien établie... En revanche, il est possible de limiter l'action du double-clic à une plage précise.

Cdlt,

Re bonjour

Merci d'avoir répondu rapidement.

Comme pour le code des couleurs de cellule, je souhaite que si je clique sur la cellule d8, elle devienne coloré et le texte en gras. Si je clique sur la cellule e8, la cellule d8 ne doit plus avoir de couleur et de gras mais la cellule e8 elle doit être en couleur et en gras.

Le code fonctionne à merveille pour la couleur mais je n'arrive pas pour le gras

Comme je vous ai dit, je n'ai pas vu le code pour les couleurs donc je ne sais pas trop ce qu'il fait.

Et ici, vous donnez un exemple avec D8 et E8 mais je ne sais pas s'il est valable pour n'importe quelle cellule, pour les cellules de la ligne 8, pour les cellules contigües ou pour la cellule qui précède.

Je vais partir du principe qu'on s'intéresse aux cellules de la ligne :

private sub worksheet_beforedoubleclick(byval target as range, cancel as boolean)
cancel = true
with target
    if .font.bold then
        .font.bold = false: .interior.color = xlnone
    else
        with me.rows(.row)
            .font.bold = false
            .interior.color = xlnone
        end with
        .font.bold = true: .interior.color = 255 '<<< adapter couleur
    end if
end with
end sub

Cdlt,

Bonjour

Merci pour votre aide. ultra précieuse

Voilà le fichier qui fonctionne quasi comme je le souhaite. Il y a juste le fait que si je double click sur une cellule, alors qu'elle est coloré et que le texte est en gras, la couleur s'enlève et le gras reste. Que manque-t-il pour que le gras s'enlève ?

Par contre si je clique directement sur une autre cellule, le gras et la couleur s'enlève

Excellente fin de journée

15classeur1.xlsm (21.00 Ko)

Bonjour,

Avec le dernier code que j'ai posté, le gras ne devrait pas rester en principe. Pour enlever le gras sur une plage, il faut :

Plage.font.bold = false 'propriété gras à la valeur faux

Dans votre cas, il faudrait plutôt agir sur la cible du double-clic :

target.font.bold = false

'ou bien au sein d'un bloc with :

with target
    .font.bold = false
end with

Si le problème persiste, est-ce que vous pouvez poster le code sur le forum à l'aide des balises </> du ruban d'icônes pour que je puisse comprendre ?

Cdlt,

Bonjour

Comme demander voilà le code. Le double click n'enlève pas le gras mais que la couleur

D'avance merci et bonne journée

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

 If Not Application.Intersect(Target, Range("B7:F9")) Is Nothing Then
   ActiveSheet.Unprotect ("Essai2021")
  If Target.Count > 1 Then Exit Sub
   Cancel = True
    With Target
     For i = 2 To 6
      If i <> Target.Column Then
       Cells(Target.Row, i).Interior.ColorIndex = xlNone
       Cells(Target.Row, i + 7).Value = ""
       Cells(Target.Row, i).Font.Bold = False
       End If
     Next i
    .Interior.ColorIndex = IIf(.Interior.ColorIndex = xlNone, 37, xlNone)
    .Offset(0, 7) = IIf(.Interior.ColorIndex = xlNone, "", Target.Column - 1)
    .Font.Bold = True
    ActiveSheet.Protect Password:="Essai2021", DrawingObjects:=True, Contents:=True, Scenarios:=True

   End With
    End If
   End Sub

Bonjour,

Voici un essai si j'ai bien compris, en passant par une procédure secondaire :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
dim PutColor as boolean
If Not Application.Intersect(Target, Range("B7:F9")) Is Nothing Then
    me.Unprotect ("Essai2021")
    Cancel = True
    With Target
        For i = 2 To 6
            If i = .Column and not (.font.bold and .interior.colorindex = 37) Then PutColor = true else PutColor = false
            MiseEnForme cells(.row, i), PutColor
        next i
    End With
    me.Protect Password:="Essai2021", DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub

Sub MiseEnForme(Cellule as range, Surbrillance as boolean)
with Cellule
    .Interior.ColorIndex = iif(Surbrillance, 37, xlNone)
    .offset(0, 7).Value = iif(Surbrillance, .column - 1, "")
    .Font.Bold = Surbrillance
end with
end sub

Bonne journée à vous aussi !

Cdlt,

Merci beaucoup

Ca fonctionne à merveille

Très bonne fin de journée

Rechercher des sujets similaires à "texte gras deverouillage fichier"