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 :

Obtenir un mois à partir d'une date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut Obtenir un mois à partir d'une date
    Bonjour à tous et à toutes,

    Je viens à vous car je n’ai jamais manipulé de dates !!! et oui, et oui… lol
    J’ai dans une de mes pages Excel, un tableau sur plusieurs lignes dans la colonne D (par exemple) contient des dates (ces dates sont mises automatiquement par une macro).

    Ah oui, je n’ai jamais manipulé de dates… dans un sens oui car j’ai juste demandé à mon ami Excel de me les mettre ! :-p

    Ce que j’aimerai faire, ce qu’une macro lise la fameuse colonne D (la date 16/05/2010 par exemple) et m’inscrive dans la colonne E le mois correspondant à cette date.

    Merci d’avance pour votre aide.

  2. #2
    Membre émérite Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Par défaut
    Une simple recopie dans une colonne au format personnalisé "mmmm" t'affichera le mois correspondant.

    .

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonsoir

    Toujours un peu de lecture avec de bonnes informations sur les fonctions date

    Initiation au VBA Office

    regarde particulièrement datepart

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour

    et m’inscrive dans la colonne E le mois correspondant à cette date.
    sous quelle forme ? numéro ou texte ?

    vois ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MsgBox MonthName(Month(ActiveCell))
    MsgBox Month(ActiveCell)
    cordialement,

    Didier

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses.
    Je viens de tester plusieurs manip (sans succès )...

    Pour reprendre depuis le début,
    j'ai un tableau sous excel, rien de plus basique jusque là. Ce tableau est rempli par l'intermédiaire d'une Userform qui contient un certain nombre d'infos contenues dans des textbox.
    Ma userform contient une liste, dès le choix effectué parmis les éléments de cette liste, les différentes textbox viennent se remplir. Les infos de ces textbox sont alors retranscrit dans mon tableau basique.
    Parmi ces texbox, une d'entre elle indique la date ou la ligne a été générée:

    Cette information est retranscrit dans mon tableau de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cel3.Offset(compteur, 9).Value = TextBox6     'date
    J'ai essayé ceci mais cela ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cel3.Offset(compteur, 9).Value = TextBox6     'date
    Cel3.Offset(compteur, 10).Value = Format(Month(Cel3.Offset(compteur, 9).Value))
    Et... me voila parmi vous!
    Si vous avez d'autres pistes, je suis preneur!

    Merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il faut te méfier des valeurs des textbox qui sont des dates.

    La valeur d'un textbox est interprétée par Excel lors de son envoi dans une cellule. Lorsque c'est une date, Excel a tendance à considérer qu'elle a été saisie dans le textbox au format anglais (mm/dd/yyyy), ce qui pose évidemment problème.

    Dès lors, je préfère considérer que la saisie du textbox correspond à du texte, et je recompose alors la date à passer dans la cellule avec DateSerial(Année, Mois, Jour).

    Bien sûr, il faut que la date saisie le soit dans un format défini, sous peine de devoir tester tous les formats acceptables, ce qui est possible, mais lourd.

    On pourrait donc avoir quelque chose comme ceci, en considérant que la date est saisie (ou passée au textbox) au format jj/mm/aaaa

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      If TextBox1.Value Like "##/##/####" Then
        Range("a1").Value = DateSerial(Right(TextBox1.Value, 4), Mid(TextBox1.Value, 4, 2), Left(TextBox1.Value, 2))
        Else
        MsgBox "Erreur dans la date"
      End If
    Tu pourras alors extraire le mois de la valeur de la cellule en utilisant la fonction Month()
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

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

Discussions similaires

  1. Obtenir le jour à partir d'une date
    Par Benoit_T dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2010, 09h07
  2. obtention du mois à partir d'une date
    Par f4u7.92 dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2008, 14h13
  3. Récupérer le nom du mois à partir d'une date.
    Par zooffy dans le forum ASP.NET
    Réponses: 10
    Dernier message: 04/03/2008, 14h48
  4. Récupérer le mois à partir d'une date
    Par dessinateurttuyen dans le forum Débuter
    Réponses: 5
    Dernier message: 01/03/2008, 12h10
  5. [ACCESS] Nom du mois à partir d'une date
    Par leloup84 dans le forum Access
    Réponses: 12
    Dernier message: 05/04/2007, 14h41

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