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 :

"Formater" le mois [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut "Formater" le mois
    Bonjour,

    Je cherche à récupérer l'indice du mois précédent l'actuel, mais sous la forme xx. Par exemple, aujourd'hui, je souhaiterais récupérer 06. Avec Month (Date) ou Month (Now), on parvient à récupérer 7 (aujourd'hui), mais pas 07 (et pas 06 évidemment). Auriez-vous une astuce pour parvenir à cela ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Bonjour,

    J'ai deux idée a voir pas testé:

    1) Tu récupère le jour + le mois et ensuite tu met au format "mm"

    (tester sous excel: une cellule = 01/06 puis format>>personnaliser "mm" sa donne bien 06)

    2) si test si ta valeur ici 6 < 10 si oui alors tu rajoute un 0 devant.

    Voila je vois que sa de mon coté mais ya sans doute mieux

    Si tu choisis une d'elle et tu as des problèmes n'hésites pas

    Bastien

  3. #3
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Merci pour tes conseils Bastou93 !

    Concernant ta première méthode, sais-tu quelle est la commande VBA pour mettre au format mm stp ?

  4. #4
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Merci pour tes conseils Bastou93 !

    Concernant ta première méthode, sais-tu quelle est la commande VBA pour mettre au format mm stp ?
    Oui sans soucis tiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1").value = Cdate("01/06")
    Range("A1").NumberFormat = "mm"

  5. #5
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Merci je vais tester !

    Perso j'avais testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim c As String
    c = Month (Date)
    c = Format (c, "mm")
    Et curieusement, cela me renvoie 01 ! Alors qu'en faisant du pas à pas, c vaut bien 7 après l'exécution de la première ligne... Comment ça se fait ?

    Au passage aussi, pour obtenir le mois d'avant (ce que j'aimerais), on fait comment ?

    Edit: je viens d'essayer ta technique, erreur avec Objet requis sur

  6. #6
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Enfaite il passe à 01 car il prend 06 comme le jour voici ce que j'ai trouvé c'est du bidouillage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1") =  month(Cdate("01/06/2010"))
    Range("A1").NumberFormat = "dd"

  7. #7
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    En effet ça semble fonctionner ! Merci !
    Par contre, je ne saisis pas comment agit la fonction Format().. Quelques explications seraient les bienvenues..
    Si par exemple je voulais retourner le mois en toutes lettres ?

  8. #8
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Alors pour cela le plus simple c'est d'aller dans Excel tu prends une cellule au pif et tu test

    tu verra que par exemple pour 6 si tu met numberformat="jjj" tu aura vend (vendredi)

    pour 06/01/2010 si tu met "jjj" tu auras le jour qui sera différent de 2011 "mmm" janv... etc

    Test sur ta cellule clique droit format cellule personnalisé

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour à tous,

    Que de chipotages alors qu'il existe des fonctions spécifiques pour le traitement des dates dans VBA.

    Une petite fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function PreviousMonth(dDate As Date) As String
      ' Returns the month before the one of the date in parameter, formatted as 2 digits
      PreviousMonth = Format(DateAdd("m", -1, dDate), "mm")
    End Function
    Et un petit test de cette fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
      Dim strMonth As String
      strMonth = PreviousMonth(Date)
      MsgBox strMonth
    End Sub
    Citation Envoyé par m@tix Voir le message
    je ne saisis pas comment agit la fonction Format().. Quelques explications seraient les bienvenues..
    La touche F1 est ton amie...
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  10. #10
    Membre éclairé Avatar de bastou93
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 217
    Par défaut
    Je me doutais bien qu'il y avait mieux

    Merci AlainTech

  11. #11
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Merci pour le complément AlainTech !

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

Discussions similaires

  1. Utilisation du format $quote
    Par lhonolulu dans le forum SAS Base
    Réponses: 5
    Dernier message: 25/05/2009, 11h06

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