[VBA] - Forcer un nombre à deux chiffres

Bonjour;

Tout d'abord voici ma macro:

Sub Fct_Dates_Annee(annee As Integer)

Columns("A:A").Select
Selection.ClearContents
Selection.NumberFormat = "yyyy-mm-dd"
Selection.HorizontalAlignment = xlRight

On Error Resume Next

j = 1
m = 1
a = annee
ligne = 1
Range("A1").Select

Do While m < 13

    Do While j < 32

        jourencours = a & "-" & m & "-" & j
        ActiveCell.Offset(ligne, 0).Value = jourencours
        ActiveCell.Offset(ligne, 0).Value = DateValue(jourencours)

        ligne = ligne + 1
        j = j + 1
    Loop

m = m + 1
j = 1

Loop

End Sub

Cette macro me permet d'avoir dans ma colonne A la totalité de l'année au format date "aaaa-mm-jj".

Il y a une suite à cette macro, qui me rempli les lignes B à F avec du texte; et j'exporte en CSV cette feuille pour un traitement en PhP.

Il m'est nécessaire de générer les dates inexistantes telles 31/02/2011.

Le souci est le suivant:

Les dates existantes sont de type 2011-02-21.

Or la date inexistante est de la forme 2011-2-31.

Je souhaiterais qu'au lieu de 2011-2-31, il m'affiche dans ma colonne 2011-02-31

En Gros, je souhaiterais forcer le format de ma variable "m" à deux chiffres; même pour les unités (01; 02; 03; .. ; 09; 10; 11; 12)

Avez vous une idée de comment faire ?

Merci d'avance pour votre aide.

Bonjour Adrien.D,

Plutôt que de trouver une solution à ton problème, je te propose un équivalent à ta macro :

Sub Fct_Dates_Annee(annee As Integer)
    Dim nbJour As Long
    Application.ScreenUpdating = False    'désactive la mise à jour de l'écran
    With Columns("A:A")
        .ClearContents
        .NumberFormat = "yyyy-mm-dd"
        .HorizontalAlignment = xlRight
    End With
    nbJourAnnee = DateValue("31-12-" & annee) - DateValue("1-1-" & annee) + 1
    With [A2]
        .Value = annee & "-01-01"
        .AutoFill Destination:=.Resize(nbJourAnnee)
    End With
End Sub

Bonjour,

Modifier cette section :

Do While m < 13
mm = IIf(m < 10, "0" & m, m)
    Do While j < 32
    jj = IIf(j < 10, "0" & j, j)
        jourencours = a & "-" & mm & "-" & jj

Le reste sans changement.

A+

Bonjour,

la solution de galopin01 me satisfait entièrement.

Je passe le fil en résolu.

Rechercher des sujets similaires à "vba forcer nombre deux chiffres"