VBA, problème de mise en forme d'une date

Bonsoir,

Dans le fichier ci-joint, une InputBox demande d'inscrire un mois et une année sous la forme MM.AAAA.

Cette information donnée par l'utilisateur sert à retourner un texte, par exemple : "Décompte de 01.2008".

Mais je désirerais que ça retourne plutôt le texte "Décompte de janvier 2008.

Comment dois-je transformer mon code ?

https://www.excel-pratique.com/~files/doc/InputBox.xls

Je ne voudrais pas demandé à l'utilisateur d'inscrire par exemple "Janvier 2008", car cette date sert également à enregistrer le fichier avec un code utilisant le format MM.AAAA.

Avec mes bonnes salutations.

Bonsoir,

Je ne suis pas terrible en VBA, mais j'ai bidouillé un petit bout de code. Je pense que tu obtiendras ce que tu souhaites, même si je suis persuadée qu'il existe des fonctions beaucoup plus "élégantes" pour obtenir ce même résultat.

https://www.excel-pratique.com/~files/doc/JCLIRInputBox.xls

Cordialement,

V_Elbie

Bonsoir,

Veux-tu essayer le code suivant :

ActiveCell.FormulaR1C1 = "Décompte de " & MonthName(Left(Date_décompte, 2)) & " " & Right(Date_décompte, 4)

à la place de :

ActiveCell.FormulaR1C1 = "Décompte de " & Date_décompte

édit : Salut V_Elbie

Re,

Salut Raja,

J'étais pas loin sur le principe, et tu as le nom de la formule qui me manquait (monthname). Je note donc ! Quoi qu'en cherchant bien, ça veut bien dire ce que ça veut dire...

Bonne soirée,

V_Elbie

Salut le forum

Pour éviter les erreurs de saisies du mois à un chiffre.

Sub MoisAnnée_du_décompte()
Dim Posit As Byte

    Dim Message, Title, Default, Date_décompte
        Message = "Décompte de MM.AAAA ??"
        Title = "Date du décompte"
        Default = ""
    Date_décompte = InputBox(Message, Title, Default)

Posit = Application.WorksheetFunction.Find(".", Date_décompte)

   Range("A1").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "Décompte de " & MonthName(Left(Date_décompte, Posit - 1)) & " " & Right(Date_décompte, Len(Date_décompte) - Posit)

End Sub

Il faudrait aussi vérifier si la saisie est bien valide mois de 1 à 12 et année à 4 chiffres en plus du séparateur .

Mytå

Bonsoir à vous tous,

Et merci à V_Elbie, à Raja et à Mytå pour leur précieuse aide.

Finalement c'est la solution de V-Elbie qui me convient le mieux car - sans que j’aie pensé de vous en parler - ça résout en plus mon problème de langue.

En effet, des personnes utilisant des PC francophones et des PC germanophones peuvent utiliser mon fichier. Mais le résultat final devrait être en allemand uniquement. J'ai donc remplacé les noms des mois proposés par V-Elbie par des noms de mois en allemand et la solution est ainsi toujours correcte.

Autrement j'aurais certainement encore eu à résoudre ce problème éventuel de noms de mois générés en français par les PC francophones.

Encore merci à vous tous.

Avec mes meilleures salutations.

Bonsoir,

Donc, si je comprends bien, pour compléter le code...

Januar, Februar, .... Dezember....

Auf wiedersehen

V_Elbie

Ja, genau!

Merci encore V-Elbie

Rechercher des sujets similaires à "vba probleme mise forme date"