IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mois et Jour sur deux caractères [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut Mois et Jour sur deux caractères
    Bonjour,

    J'essaye désespérément de mettre le mois et le jour sur deux caractères obligatoirement mais tant que l'un des deux est inférieur à 10, ça ne le fait pas.
    J'ai fouillé dans le forum en vain.

    Merci d'avance pour votre aide

    Nom : vba.png
Affichages : 1104
Taille : 17,7 Ko

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il est normal que la valeur se trouvant dans la variable Mois comme Jour d'ailleurs ne réponde pas à vos attentes.
    Au lieu de déclarer ces variables comme Integer, il faut les déclarer comme String
    Pour rappel, la fonction Format renvoie une chaîne de caractères

    Si on déclare une variable comme un type numérique et qu'on lui passe comme valeur une chaîne de caractères correspondant à un nombre, la conversion sera automatique

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
      Dim Mois As Integer
      Mois = "01"
      MsgBox Mois
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éprouvé
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Par défaut Mois et jour sur 2 caracteres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    jour = Day(Now)
    mois = Month(Now)
     
     If jour <= 9 And mois <= 9 Then
     
        d = jour & mois
     
    End If
    d donne 91 pour aujourd'hui (9 janvier)

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    d donne 91 pour aujourd'hui (9 janvier)
    C'est tout à fait logique, voir mon explication plus haut
    Les fonctions Day et Month font une extraction d'une date et donc toute valeur numérique inférieure à 10 ne renvoie qu'un seul caractère et donc pour obtenir deux caractères il faut utiliser Format

    Exemple pour obtenir deux caractères pour les valeurs numériques inférieures à 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub t()
      Dim Mois As String
      Dim Jour As String
      Mois = Format(Now(), "mm")
      Jour = Format(Now(), "dd")
      MsgBox Mois & Jour
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 74
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Il est normal que la valeur se trouvant dans la variable Mois comme Jour d'ailleurs ne réponde pas à vos attentes.
    Au lieu de déclarer ces variables comme Integer, il faut les déclarer comme String
    Pour rappel, la fonction Format renvoie une chaîne de caractères

    Si on déclare une variable comme un type numérique et qu'on lui passe comme valeur une chaîne de caractères correspondant à un nombre, la conversation sera automatique

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
      Dim Mois As Integer
      Mois = "01"
      MsgBox Mois
    End Sub
    Merci Philippe :-)

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Maintenant si l'on souhaite par exemple renvoyer une date inversée pour par exemple sauver un fichier avec la date inversée comme préfixe, on n'est pas obligé de passer par des variables comme Jour et Mois

    Exemple pour obtenir une chaîne de caractères ayant la date inversée suivi de du texte "-Ventes mensuelles" suivi du suffixe de l'extension
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub t()
      Dim FileName As String
      FileName = Format(Now(), "yymmdd") & "-Ventes mensuelles.xlsm"
      MsgBox FileName
    End Sub
    et personnellement, j'utiliserais Date au lieu de Now
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requete de mise a jour sur deux table
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/02/2010, 10h17
  2. Obtenir mois sur deux caractères
    Par PtitGénie dans le forum VBScript
    Réponses: 4
    Dernier message: 07/01/2010, 17h51
  3. Heure sur deux caractères
    Par Sanvean dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 05/12/2008, 14h39
  4. Réponses: 2
    Dernier message: 16/07/2007, 12h52
  5. Afficher un chiffre sur deux caractères
    Par Metallic-84s dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2006, 10h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo