1ère lettre du Jour et du Mois en MAJUSCULE

Bonjour le forum

J'ai cette formule que je tire vers le bas

Ça fait bien ce que je veux

=NOMPROPRE(TEXTE(A3;"jjjj jj mmmm aaaa"))

Mais existe t-il une macro pour faire ceci?

Merci à vous

Cordialement

Sub Macro1()

Range("B1") = WorksheetFunction.Proper(Format(Range("A1"), "dddd d mmmm yyyy"))

End Sub

De manière générale, la commande WorksheetFunction.[function name] te permet d'utiliser en VBA n'importe quelle fonction existant dans Excel. Le nom de la fonction doit être en anglais (dans mon exemple "PROPER" qui correspond à "NOMPROPRE"), mais tu trouves facilement sur internet la correspondance entre les noms français et anglais.

Note que j'ai remplacé la fonction TEXTE par "Format" comme la fonction existe en VBA (et en plus, cela te permet de continuer à traiter la cellule commune une date, ce qui peut être pratique. Sinon, il faudrait utiliser:

Sub Macro1()

Range("B1") = WorksheetFunction.Proper(WorksheetFunction.Text(Range("A1"), "[$-040c]dddd d mmmm yyyy"))

End Sub

Avec l'option [$-040c] qui donne la date en français (sinon VBA te donne le jour et le mois en anglais)

Bonjour Caspi le forum

Oui ça fonctionne mais peut-on mettre un domaine

Exemple B1:B100 A1:A100

Avec ma première formule je fais glisser => copier => Collage spécial => valeurs

Ça fonctionne

Merci à toi

Bonjour,

Une proposition !?

Cdlt.

2al87.xlsm (18.05 Ko)
Public Sub FormatDate()
Dim rw As Long
    With ActiveSheet
        For rw = 2 To 11
            .Cells(rw, 2).Value = WorksheetFunction.Proper(FormatDateTime(.Cells(rw, 1), vbLongDate))
        Next rw
    End With
End Sub

Il y a plusieurs manières de le faire, comme par exemple une boucle FOR :

Sub Macro1()

    For X = 1 To 100
        Range("B" & X).Value = WorksheetFunction.Proper(Format(Range("A" & X), "dddd d mmmm yyyy"))
    Next X

End Sub

Re à vous deux

Ça fonctionne mais qu'elle est la meilleure solution pour un programme de ce type?

C'est pour éviter de retaper les dates colonne A lorsqu'il y en a beaucoup. Fastidieux

Feuille "RESULTAT-ANALYSE" (exemple)

Merci à vous

Cordialement

Je ne comprends pas ta dernière question...

Tu dois forcément entrer la date quelque part, non ?

Re Caspi

Tu as fait une petite macro et Jean-Eric aussi

Dans le fichier joint (toto) Feuille "RESULTAT-ANALYSE" c'est pour éviter de retaper les dates jours et mois 1ère lettre en majuscule

Essaie d'adapter ta macro ou celle de Jean-Eric STP

Merci d'avance

Cordialement

Si tu veux simplement taper tes dates en A et que la macro te les mette en forme avec la majuscule :

Sub Macro1()

    For X = 1 To 100
        Range("A" & X).Value = WorksheetFunction.Proper(Format(Range("A" & X), "dddd d mmmm yyyy"))
    Next X

End Sub

Si tu veux transformer les cellules sélectionnées :

Sub Macro1()

    For Each X In Selection
        X.Value = WorksheetFunction.Proper(Format(X, "dddd d mmmm yyyy"))
    Next X

End Sub

Mais pas certain d'avoir compris ce que tu cherches à faire...

Re Caspi

Je prends les deux

Merci à toi et aussi à Jean-Eric

Ça va bien me servir.

Je vais adapter tout ça en fonction des programmes

Bien cordialement à vous deux

Bonne fin d’après- midi

Rechercher des sujets similaires à "1ere lettre jour mois majuscule"