|
|
|
|
Bonjours à tous,
J'ai vu beaucoup de macro pour formater les polices tout en majuscule ou tout en minuscule, mais aucune ne fait mon bonheur à 100%. Voici le problème, j'ai des cellule excel qui contiennent tous plusieurs lignes chacune en faisant alt+entrée...Je voudrait formater le texte de ces cellules en minuscule mais que la première lettre de chaque ligne soit en majuscule...
Quelqu'un est assez fort pour m'aider ?
Merci d'avance ;)
Bonjour,
Sub Transforme()
Dim Valeur As String
Dim Plage, Cellule As Range
' Ici spécifier la plage à couvrir !
Set Plage = Range("A1:C3")
For Each Cellule In Plage
Valeur = Mid(Cellule.Value, 2)
Valeur = LCase(Valeur)
Valeur = UCase(Mid(Cellule.Value, 1, 1)) & Valeur
Cellule.Value = Valeur
Next Cellule
End Sub
Lupin |
Salut Lupin et Simon,
Sub maj() Dim l As Long, i As Long Dim sTmp As String, sRes As String, sStr As String sStr = Cells(1, 1) l = Len(sStr) For i = 1 To l sRes = sRes & Mid(sStr, i, 1) If (Mid(sStr, i, 1) = Chr(10)) Then sRes = Mid(sRes, 1, i) & UCase(Mid(sStr, i + 1, 1)) i = i + 1 End If Next Cells(1, 1) = UCase(Left(sRes, 1)) & Mid(sRes, 2, l + 1) End Sublami20j P.S. La macro mets en forme la cells(1,1) uniquement. Il faut adapter en fonction des besoins. |
Bonjour,
Sub Transforme() Dim Cellule As Range, Plage As Range Dim sStr As String, sRes As String Dim Cmpt As Long, Ptr As Long Set Plage = Application.InputBox( _ "Sélectionner la plage à couvrir", _ "Plage:", _ ActiveWindow.Selection.Address(0, 0), _ Type:=8) If Not (Plage Is Nothing) Then For Each Cellule In Plage sStr = UCase(Left(Cellule.Value, 1)) & _ LCase(Mid(Cellule.Value, 2)) Ptr = Len(sStr) For Cmpt = 1 To Ptr sRes = Mid(sStr, Cmpt, 1) If (sRes = Chr(10)) Then sStr = (Mid(sStr, 1, Cmpt)) & _ UCase(Mid(sStr, Cmpt + 1, 1)) & _ Mid(sStr, Cmpt + 2) End If Next Cmpt Cellule.Value = sStr Next Cellule End If End Sub Lupin |
Bonjour je cherche a faire un macro qui me premaitrai pour chaque mot plus long que 4 caracteres mettre la premiere lettre en Majuscule et les suivante en minuscules.
|