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
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 subPour 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 subCdlt,
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 subCdlt,
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
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 fauxDans 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 withSi 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 SubBonjour,
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 subBonne journée à vous aussi !
Cdlt,
Merci beaucoup
Ca fonctionne à merveille
Très bonne fin de journée