XL 2016 Chaine de caractère VBA majuscule et gras

agbj

XLDnaute Nouveau
Bonjour à tous,
je me permets de me tourner vers vous car j'ai une question. En effet dans le cadre d'une base de donnée que j'ai créée, j'aimerai afficher la première lettre en gras et en majuscule avec une procédure sub pour pouvoir le faire n'importe où.

Auriez vous une idée pour écrire cette procédure ? J'ai tenté différents éléments avec des Left pour isoler la lettre à gauche puis de Ucas mais rien de concluant.
Si vous savez le faire, je suis preneur
Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

L'essence et la vraie nature d'une base de donnée sur une feuille Excel, c'est de n'avoir aucun formatage (sauf numérique et/ou monétaire etc...)
Donc pas de gras, pas de couleurs, pas de bordures.
 

Staple1600

XLDnaute Barbatruc
Re

Maintenant pour répondre à la question (et en étant donc en contradiction avec mon précédent message ;))
VB:
Sub BoldeRaZaTor_And_PropeRaZaTor()
Dim rng, c As Range
Set rng = ActiveSheet.UsedRange
Application.ScreenUpdating = False
For Each c In rng
If Len(c) And Not c.HasFormula Then
c = StrConv(c.Text, vbProperCase)
c.Characters(Start:=1, Length:=1).Font.Bold = True
End If
Next
End Sub
 

agbj

XLDnaute Nouveau
Ok merci beaucoup de votre réponse et du code VBA
J'abuse un peu de votre temps libre mais serait il possible que vous m'aidiez à le transposer dans ce style là ?

Sub
Dim montexte As String

montexte = "patate chaude"
MsgBox Left (montexte, 1)

End Sub

Le problème étant que je n'arrive pas à mélanger à la fois le Left, le Ucase et le Bold
 

patricktoulon

XLDnaute Accro
re
bonsoir agbj
j'ajoute a Staple1600 le proper même aux formules
pour le 1er caracteres en gras je pense pas que se soit possible par formule

VB:
Sub BoldeRaZaTor_And_PropeRaZaTor()
    Dim rng, c As Range
    Set rng = ActiveSheet.UsedRange
    Application.ScreenUpdating = False
    For Each c In rng
        If Len(c.Value) Then
            If Not c.HasFormula Then
                c = StrConv(c.Text, vbProperCase)
                c.Characters(Start:=1, Length:=1).Font.Bold = True
            Else
                c.Formula = "=PROPER(" & Replace(c.Formula, "=", "") & ")"
            End If
        End If
    Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Pour infos, on peut pas (classiquement) afficher un caractère gras dans une Msgbox
On peut juste faire ceci (en reprenant ton exemple)
VB:
Sub Test()
Dim montexte As String
montexte = "patate chaude"
MsgBox StrConv(Mid(montexte, 1, 1), vbProperCase)
MsgBox StrConv(montexte, vbProperCase)
End Sub
 

agbj

XLDnaute Nouveau
Re

Pour infos, on peut pas (classiquement) afficher un caractère gras dans une Msgbox
On peut juste faire ceci (en reprenant ton exemple)
VB:
Sub Test()
Dim montexte As String
montexte = "patate chaude"
MsgBox StrConv(Mid(montexte, 1, 1), vbProperCase)
MsgBox StrConv(montexte, vbProperCase)
End Sub
Très bien je pensais que c'était faisable, je verrai donc avec mon prof
En tout cas merci pour votre aide et votre temps
Bonne journée à vous
 
Haut Bas