Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

extraction de dates

lio62

XLDnaute Nouveau
Bonsoir,
j'ai une base de donnée (feuille "bd") dans laquelle se trouve en colonne "B"
des dates sous cette forme JJ/MM/AAAA, je voudrais extraire ces données en fonction du mois et de l'année.Pour l'instant j'y arrive pour la colonne A (maintenance, entretien depannage )et les équipes b1, b2 etc..) mais pour les dates je coince

Code:
Sub pretmatosinformatique()
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+
 

lio62

XLDnaute Nouveau
Re : extraction de dates

re
j'avais mis ca mais sans succés
ladate = [ao1]

If .Range("a" & n) = onglet And .Range("x" & n) Like "J1" And CStr(Month(ladate) + Year(ladate) * 100) Then a = a + 1


Pour toi a quoi correspondrait date1 et date 2?

merci a+
 

wilfried_42

XLDnaute Barbatruc
Re : extraction de dates

re:

date1, l'année *100 + mois de reference : pas besoin du cstr
date2, l'annee *100 + mois à tester

par contre dans ta ligne, ou est le test de la date ?

And CStr(Month(ladate) + Year(ladate) * 100) Then

100) Then ----> il manque quelqu chose la le ---> = ?????
 

lio62

XLDnaute Nouveau
Re : extraction de dates

re

je t'envoie un semblant de fichier enfin ce qu'il en reste compressé avec winrar puis winzip

merci a+
 

Pièces jointes

  • FDCnessai2.zip
    46.3 KB · Affichages: 26

wilfried_42

XLDnaute Barbatruc
Re : extraction de dates

re:

je crois qu'il y a un probleme

je cite le titre de to post
extraction de dates
je cite ta question

personnellement, je ne pense pas avoir fait autre chose que ce que tu demandais

alors pourquoi cette phrase
je ne comprends pourquoi tu veux comparer 2 dates ,(date1 et date2)

si tu veux extraire à parti d'un mois et une annee, le plus simple, c'est une date de reference à la quelle tu recuperes le mois et l'année year(date1)*100 + month(date1) et tu controles ces parametres avec le dates dans ta base


 
Dernière édition:

lio62

XLDnaute Nouveau
Re : extraction de dates

bonjour,

tu as des horaires bien particuliers !

j'ai juste une incompatibilité de type sur cette ligne

date2 = (Year(.Range("B" & n)) * 100) + Month(.Range("B" & n))

merci a+
 

ChTi160

XLDnaute Barbatruc
Re : extraction de dates

Salut lio62
Bonjour wilfried
Le Forum

je ne sais pas si j'ai compris Lol
arfff en vérifaint comment as tu déclaré date2 ??
date2 = (Year(.Range("B" & n)) * 100) + Month(.Range("B" & n))
date2= 200704
si c'est en String pas de problème si c'est en date alors la problème
Bonne journée
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re : extraction de dates

Re
arfff la je ne comprends pas lol

tu dis
les dates sont entrées sous cette forme jj/mm/aaaa
date2=20/07/2004
non puisque tu récupéres les dates dans la colonne B
date2 = (Year(.Range("B" & n)) * 100) + Month(.Range("B" & n))
donc il faut qu'en colonne B tu es des dates pour en récupérer l'Année (Year(.Range("B" & n)) ) puis le Mois ( Month(.Range("B" & n)) )
je ne comprends pas pourquoi tu multiplies l'Année ainsi récupérée par 100 (Year(.Range("B" & n)) * 100) si Year(.Range("B" & n)) retourne 2007 alors 200700 arff ou alors c'est un 1 qu'il faut pour transformer le String en Integer ??????
date2 = (Year(.Range("B" & n))*1) + Month(.Range("B" & n))
à Voir
si tu as comme message ( incompatibilité de type ) c'est que tu as déclaré date2 en String par exemple et que tu lui affectes un Nombre ou autre

Bonne fin de journée
 

wilfried_42

XLDnaute Barbatruc
Re : extraction de dates

re:
bonjour chti160

exacte chti160, definir date1 et date2 as long, integer est un peu court
et comme year et month retourne de l'entier, pas besoin de val, cint ou encore clngou cdate
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…