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 :

vba - filtrer les éléments de la date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut vba - filtrer les éléments de la date
    Bonjour, est-il possible a partir d'une date au format dd/mm/yyyy de recuperer seulement l'année et de recuperer le mois et l'année.

    merci de votre reponse.

  2. #2
    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
    Bonjour

    Le format de la date n'influe pas. Une date est un nombre, quel que soit le format d'affichage utilisé.

    Comme tu es dans le forum VBA, je suppose que c'est par vba...
    Les fonctions Month et Year permettent cela.

    Exemple de code qui renvoie l'année de la date système
    Cela étant, si ta date est une chaine de caractères, tu dois utiliser les fonctions
    Left(...), Mid(...) ou Right pour extraire les caractères souhaités.
    renverra une chaine représentant le millésime,
    renverra le mois, sur base du format présenté dans ta question...

    A toi de voir en fonction de ton cas
    "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...
    ---------------

  3. #3
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut
    merci de ta reponse,

    j'essaie les indications que tu me donnes...
    voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
       Dim madate As Variant
       madate = Sheets("sheet2").Range("f2").Text
       Sheets("sheet2").Range("f26").Value = right(madate, 4)
       Sheets("sheet2").Range("f27").Value = Mid(madate, 4, 2)
    End Sub
    la valeur dans la cellule F2 est 15/02/2008
    Donc j'aimerais recuperer dans la cellule F26, la valeur 02/2008
    et dans la celluel F27 la valeur 2008

    Mais les resultat que j'ai sont 02/01/1900 pour F26 et 30/06/1905 pour F27.

  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,

    Car tes cellules sont dans un format donné qui n'est pas du texte, vois comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
       Dim madate As Variant
       madate = Range("f22").Text
       Range("f26:f27").NumberFormat = "@"
        Range("f26").Value = Right(madate, 4)
       Range("f27").Value = Mid(madate, 4, 2)
    End Sub
    ou pour obtenir vraiment ce que tu demandes ci-dessus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
       Dim madate As Variant
       madate = Range("f22").Text
       Range("f26:f27").NumberFormat = "@"
        Range("f26").Value = Right(madate, 7)
       Range("f27").Value = Right(madate, 4)
    End Sub
    cordialement,

    Didier

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut
    merci ça marche.

    et pour info, comment on recupere le mois seulement.

    et peux-tu m'expliquer ce que c'est le "@" j'aimerai comprendre un peu plus le programme au lieu de copier les lignes.

    merci

  6. #6
    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
    En toute logique, regardes la déclaration de variable et la modif du code, en faisant F1 sur les mots clefs, tu auras des compléments.

    La réponse pour le mois était d'ailleurs fournie dans le post détaillé de Pierre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
    Dim madate As String
     
    madate = CStr(Range("f22"))
    Range("f26:f28").NumberFormat = "@"
    Range("f26").Value = Right(madate, 7)
    Range("f27").Value = Right(madate, 4)
    Range("f28").Value = Mid(madate, 4, 2)
    End Sub
    Ta soif de comprendre est positive, une lecture attentive est déjà un bon départ Je te rajoute des liens à suivre, il y aura de quoi faire

    Rajout :

    Le plus important est dans la première phrase de Pierre :
    Le format de la date n'influe pas. Une date est un nombre, quel que soit le format d'affichage utilisé.
    Dans Excel (pas vba) fait F1 et tapes date, vois à à propos....

    Microsoft Excel enregistre les dates sous la forme de nombres séquentiels appelés numéros de série. Par défaut, le 1er janvier 1900 correspond au numéro de série 1, et le 1er janvier 2008 correspond au numéro de série 39448 parce que 39 448 jours se sont écoulés depuis le 1er janvier 1900. Excel enregistre les heures sous la forme de fractions décimales parce que l'heure est considérée comme une partie de la journée.etc.... (à lire si on veut comprendre le comportement logique d'Excel sur les dates )
    Sinon voir ce qui t'interesse dans :

    http://dolphy35.developpez.com/article/outlook/vba/

    http://mhubiche.developpez.com/vba/f...ions/datetime/


    http://jeannot45.developpez.com/arti...personnalises/


    cordialement,

    Didier

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

Discussions similaires

  1. [2008R2] Filtrer les donnees supérieures à une date
    Par xian21 dans le forum SSRS
    Réponses: 1
    Dernier message: 13/08/2013, 15h52
  2. filtrer les données entre 2 dates
    Par faniette dans le forum C++Builder
    Réponses: 31
    Dernier message: 21/05/2012, 13h24
  3. [SP-2010] filtrer les éléments d'un champ "recherche" dans sharepoint 2010e
    Par francis.richter dans le forum SharePoint
    Réponses: 1
    Dernier message: 10/06/2011, 08h45
  4. [VB6] Filtrer les éléments dans une listview
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/06/2009, 11h56
  5. Filtrer les éléments d'un sous formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 6
    Dernier message: 30/08/2006, 10h43

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