Mettre en rouge et gras

Bonsoir a tous et toutes, forum bonsoir

Dans mon programme s'affiche actuellement le message ci-dessous, ca fonctionne, mais je souhaiterai SVP que le " D " de dernier soit en gras et rouge ainsi que le " à "

Dernier enregistrement le 04 06 2009 à 19:42

Donc si vous avez un peu de temps, je vous en remercie d'avance.

Je vous souhaite une excellente soirée

Raymond

Dim modifs As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
modifs = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Application.DisplayAlerts = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Gestion " & Format(Now, "dddd dd mmm yyyy", vbMonday) & ".xlsm"
Application.DisplayAlerts = True

If modifs = True Then
Sheets("Compte").[A3].Value = "Dernier enregistrement le " & Format(Date, "dd mm yyyy") _
        & " à " & Format(Time, "H:MM")
End If
End Sub

Bonsoir,

Voici une solution :

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\Gestion " & Format(Now, "dddd dd mmm yyyy", vbMonday) & ".xlsm"
    Application.DisplayAlerts = True

    If modifs = True Then
        With Worksheets("Compte").[A3]
            .Value = "Dernier enregistrement le " & Format(Date, "dd mm yyyy") & " à " & Format(Time, "H:MM")

            ' Mettre le D en gras et rouge
            With .Characters(Start:=1, Length:=1).Font
                .FontStyle = "Gras"
                .ColorIndex = 3
            End With

            ' Mettre le à en gras et rouge
            With .Characters(Start:=38, Length:=1).Font
                .FontStyle = "Gras"
                .ColorIndex = 3
            End With
        End With
    End If
End Sub

Bonjour a tous et toutes, bonjour forum

Bonjour Readi

Merci pour ta réponse et le code, Mais ca ne fonctionne pas comme attendu,

ca me mets tout le message en rouge et gras

" Dernier enregistrement le 04 06 2009 à 19:42 "

Je vais regarder après mon café te redirai si je trouve, c'est pas gagné,

A plus tard et merci

Ray

Bonjour,

Je pense avoir trouvé la solution à ton problème.

Il s'agit de rajouter le format de la cellule (.NumberFormat = "@") avant la mise en forme. C'est le même souci rencontré dans le post "Afficher les douze mois".

Voici le code :

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Application.DisplayAlerts = False
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\Gestion " & Format(Now, "dddd dd mmm yyyy", vbMonday) & ".xlsm"
    Application.DisplayAlerts = True

    If modifs = True Then
        With Worksheets("Compte").[A3]
            .ClearFormats
            .NumberFormat = "@"
            .Value = "Dernier enregistrement le " & Format(Date, "dd mm yyyy") & " à " & Format(Time, "H:MM")

            ' Mettre le D en gras et rouge
            With .Characters(Start:=1, Length:=1).Font
                .FontStyle = "Gras"
                .ColorIndex = 3
            End With

            ' Mettre le à en gras et rouge
            With .Characters(Start:=38, Length:=1).Font
                .FontStyle = "Gras"
                .ColorIndex = 3
            End With
        End With
    End If
End Sub

Re salut Readi, forum

Bon ca fonctionne mais pas facile a gérer derrière, car ca fout en l'air le centrage, les remplissages motifs et textures, les dégradés bicolores houla houla, ca reste sur un fond de cellule blanc.

c'est pas simple et pas facile d'utilisation tout ca

Enfin merci beaucoup c'est gentil a toi, pour le code et le chti coup de main.

Je te souhaite de passer une agréable journée

Raymond

re,

Pour éviter de supprimer les formats de la cellule, il faut enlever cette ligne :

.ClearFormats

Re readi, forum

Merci pour le " ClearFormats " j'y ai penser en faisant mes courses ce matin, je viens d'essayer effectivement ca marche,

Par contre le " D " et le " à " sont bien bien en Rouge et Gras mais le restant du message est en noire mais en Gras, faudrai écriture noire pas Gras.

Je vais voir cette après midi, en tout cas merci a toi et également une bonne après midi.

A plus tard

Raymond

re,

Une autre version :

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    Application.DisplayAlerts = False 
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\Gestion " & Format(Now, "dddd dd mmm yyyy", vbMonday) & ".xlsm" 
    Application.DisplayAlerts = True 

    If modifs = True Then 
        With Worksheets("Compte").[A3]
            .NumberFormat = "@"
            .Value = "Dernier enregistrement le " & Format(Date, "dd mm yyyy") & " à " & Format(Time, "H:MM")

            With .Characters(Start:=1, Length:=Len(.Value)).Font
                .Bold = False
                .ColorIndex = 0
            End With

            ' Mettre le D en gras et rouge
            With .Characters(Start:=1, Length:=1).Font
                .Bold = True
                .ColorIndex = 3
            End With

            ' Mettre le à en gras et rouge
            With .Characters(Start:=38, Length:=1).Font
                .Bold = True
                .ColorIndex = 3
            End With
        End With
    End If 
End Sub

N'ayant pas Excel 2007, il n'est pas évident de trouver la bonne solution.

Re Readi, forum

Voici ce que j'ai réussi a faire avec ton aide, je t'en remercie beaucoup.

Il y a surement mieux et plus court a faire pour améliorer le code.

Je laisse le code aux virtuoses du VBA, auquel cas je suis preneur.

Sinon si ca peut servir a quelqu'un

Je te remercie a nouveau et te dit surement a plus tard, car je suis en train de revoir tous mon programme afin de l'optimiser pour qu'il ne ressemble pas a une check list de boeing.

Bonne fin d'après midi a toi

Raymond

Dim modifs As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
modifs = True
End Sub
''''''''''''''''
Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.SaveAs ThisWorkbook.Path & "\Gestion " & Format(Now, "dddd dd mmm yyyy", vbMonday) & ".xlsm"
Application.DisplayAlerts = True
If modifs = True Then

With Worksheets("Compte").[A3]
.NumberFormat = "@"
.Value = "Dernier enregistrement le " & Format(Date, "dd mm yyyy") & " à " & Format(Time, "H:MM")

.Font.Name = "Arial"
.Font.Size = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.Characters(1, 1).Font.ColorIndex = 3      'Pour mettre le D
.Characters(1, 1).Font.Bold = True
''''''''''''''''''''''''''''''''''''''''''''''''''
.Characters(2, 37).Font.ColorIndex = 1     'Retour a la normal
.Characters(2, 37).Font.Bold = False
''''''''''''''''''''''''''''''''''''''''''''''''''
.Characters(38, 1).Font.ColorIndex = 3     'Pour le à
.Characters(38, 1).Font.Bold = True

.Characters(39, 6).Font.ColorIndex = 1     'Retour a la normal
.Characters(39, 6).Font.Bold = False
End With

End If
End Sub
Rechercher des sujets similaires à "mettre rouge gras"