Mise en forme
Catégorie : Cel / Col / Lig
Publié par veriland le 09-Aug-2013 22:30
Cel / Col / Lig - Mise en forme
"Je souhaiterais "encadrer" ma cellule active en rouge et si possible grossir la police pendant que je saisis. Dès que je passe à une autre cellule la cellule précédente redevient normale."
Voici une macro événementielle à placer dans "ThisWorkbook".

Seule la feuille "Saisie" est concernée
Les cellules sont bordées en bleu, ce qui, avec la sélection, donne une couleur rouge !

'************************************'partie à coller dans ThisWorkbook'************************************Option Explicit'Ti 07-07-04 Private Type TBord LineStyle As Integer Color As Long Weight As IntegerEnd TypeDim Size, Bords(1 To 6) As TBordDim LastCel As RangePrivate Sub Reinit()Dim B% With LastCel For B = 1 To .Borders.Count .Borders(B).Color = Bords(B).Color .Borders(B).Weight = Bords(B).Weight .Borders(B).LineStyle = Bords(B).LineStyle Next B .Font.Size = Size End WithEnd SubPrivate Sub Init()Dim B% With LastCel For B = 1 To .Borders.Count Bords(B).Color = .Borders(B).Color Bords(B).LineStyle = .Borders(B).LineStyle Bords(B).Weight = .Borders(B).Weight Next B Size = .Font.Size .Font.Size = Size + 4 .Borders.LineStyle = xlContinuous .Borders.Weight = xlThick .Borders.Color = vbCyan End WithEnd SubPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'pour redonner à la cellule sélectionnée sa mise en forme originale If Not LastCel Is Nothing Then ReinitEnd SubPrivate Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 'ne concerne que la feuille nommée "saisie" If Sh.Name <> "Saisie" Or Target.Count > 1 Then Exit Sub Application.ScreenUpdating = False If Not LastCel Is Nothing Then Reinit Set LastCel = Target Init Application.ScreenUpdating = TrueEnd Sub