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-EXCEL] extraction de dates


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut [vba-EXCEL] extraction de dates
    Bonsoir
    j'ai une feuille"bd" qui contient des dates en colonne "B" sous cette forme JJ/MM/AAAA, je voudrai extraire ces données en fonction du mois et de l'année.

    Pour l'instant j'y arrive avec le type de travail et les équipes intervenantes mais pour les dates je coince



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Sub test()
    Dim tabonglet As Variant
    Dim onglet As String
    Dim n As Long
    Dim j As Byte, w As Byte
    Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer, g As Integer, h As Integer, r As Integer
     
     
    Dim rng As Range
     
    tabonglet = Array("MAINTENANCE", "DEPANNAGE", "ENTRETIEN")
    w = 4
    For j = 0 To UBound(tabonglet)
    Sheets("bd").Activate
     
    onglet = tabonglet(j)
        a = 0
        b = 0
        c = 0
        d = 0
        e = 0
        f = 0
        g = 0
        h = 0
     
        With Worksheets("bd")
            .Range("A2").Activate
            .Range("A2").End(xlDown).Select
            Set rng = ActiveCell
            For n = 1 To rng.Row
                If .Range("a" & n) = onglet And .Range("x" & n) Like "b1" Then a = a + 1
                If .Range("a" & n) = onglet And .Range("x" & n) Like "b2" Then d = d + 1
                If .Range("a" & n) = onglet And .Range("x" & n) Like "b3" Then b = b + 1
                If .Range("a" & n) = onglet And .Range("x" & n) Like "b4" Then c = c + 1
                If .Range("a" & n) = onglet And .Range("x" & n) Like "b5" Then g = g + 1
     
            Next n
            Sheets("feuil1").Range("b" & w) = a   
            Sheets("feuil1").Range("c" & w) = d   
            Sheets("feuil1").Range("d" & w) = b   
           Sheets("feuil1").Range("e" & w) = c  
             Sheets("feuil1").Range("f" & w) = g  
     
     
            w = w + 1
        End With
    Next j
     
    Worksheets("bd").Range("S1").Activate
    End Sub
    merci a+

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Je ne vois pas ou est le probleme avec les dates.
    Si toutes tes dates sont au format JJ/MM/AAAA, tu devrais pouvoir comparer avec les 7 derniers caractères de ta date qui te donne donc MM/AAAA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Right(Trim(.Range("b" & n).Text),7) = "01/2007" Then (...)
    Ou alors comparer le mois et l'annee :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Month(.Range("b" & n)) = 1 And Year(.Range("b" & n))=2007 Then (...)

  3. #3
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir, Dadavyvy

    je teste cela

    merci a+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Par défaut [vba-EXCEL] extraction de dates
    Tu pourrais aussi utiliser les fonctions prédéfinies de VBA-E

    dans ton cas, je pense que:

    MOIS=Datepart("m",adresse_de_Cellule$)
    et
    ANNEE=Datepart("yyyy",adresse_de_Cellule$))

    devraient faire l'affaire.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 289
    Par défaut
    j'ai un petit programme qui fonctionne comme tu souhaiterais.
    Je te le ferai passer dès que je rentre au boulot.
    Le principe :
    1) tu tri ta colonne date par ordre de date croissante
    2) tu rentres la date de départ
    3) tu rentres la date de fin
    4) il extrait toutes les lignes qui sont comprises entre la date de début et la date de fin.

    Dis moi si tu es intéressé??

  6. #6
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir Mulanzia


    je suis preneur

    d'autant que j'ai une erreur "incompatibilité de type sur cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Month(.Range("b" & n)) = 1 And Year(.Range("b" & n))=2007 Then (...)
    merci a+

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Month(Cdate(.Range("b" & n))) = 1 And Year(cdate(.Range("b" & n)))=2007 Then (...)

  8. #8
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    Bonjour Ousk

    j'essaye ca et je te dis
    par contre j'ai ca aussi mais j'ai également la meme erreur d'incompatibilité sur date2 (en rouge)
    j'ai' essayé en déclarant date1 et date2 en integer ,long, date, string mais j'ai toujours la meme erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    date1 = (Year([ao1]) * 100) + Month([ao1])
         
         With Worksheets("bd")
            .Range("A2").Activate
            .Range("A2").End(xlDown).Select
            Set rng = ActiveCell
            For n = 1 To rng.Row
          date2 = (Year(.Range("B" & n)) * 1) + Month(.Range("B" & n))
    merci a+

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu ne peux pas déduire la correction à tester de ma réponse précédente ?

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Juste une question a tout hasard, de quelle colonne extrais-tu tes dates et qu'y a-t-il dans cette colonne?

  11. #11
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    bonsoir,

    j'ai mis les variables a long et j'ai surtout mis 2 a la place de 1
    pour N car je trie bien sur la colonne mais a partir de la ligne 2 la première servant d'entete aux colonnes.

    merci a tous..........................tu vois ousk que j'ai cherché mais je ne maitrise pas bien l'espion. y a un tuto la dessus


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For n = 1 To rng.Row    
      date2 = (Year(.Range("B" & n)) * 1) + Month(.Range("B" & n))

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour l'espion, je ne peux pas te répondre. Quand je ne sais pas, je teste
    Par contre, tu peux expliquer ton "* 1" là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date2 = (Year(.Range("B" & n)) * 1) + Month(.Range("B" & n))
    Je t'avoue que ça me dépasse

  13. #13
    Membre éclairé Avatar de lio62
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 472
    Par défaut
    t emarre pas ousk il ne sert srictement a rien je l'ai effacé depuis bien longtemps ( ) mais a l'école ......

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

Discussions similaires

  1. [VBA-EXCEL] format de date lors d'écriture dans une cellule
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2007, 17h44
  2. Réponses: 2
    Dernier message: 26/12/2006, 12h49
  3. [VBA-excel] Affecter une date à la première cellule pleine
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 10/11/2006, 12h06
  4. [VBA Excel] convertir une date francaise au format anglais
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/12/2005, 16h52
  5. [VBA Excel] Extraction de données
    Par tpv72 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/09/2005, 21h49

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