• Initiateur de la discussion Initiateur de la discussion lio62
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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+
 
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+
 
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
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

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


date1 = (year([ao1] ) *100) + month([ao1)) ' ------> Ao1 cellule de saisie de la date du mois et de l'anne à extraire
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))*100) + month(.range("B" & n))
If .Range("a" & n) = onglet And .Range("x" & n) Like "B1" And date1 = date2 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
'If .Range("av" & n) Like "*melor*" Then d = d + 1
'If .Range("av" & n) Like "*melec*" Then e = e + 1
'If .Range("av" & n) Like "*melim*" Then f = f + 1
'If .Range("av" & n) Like "*melimpa*" Then g = g + 1

Next n
 
Dernière édition:
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
213
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
152
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
538
Réponses
3
Affichages
202
Réponses
7
Affichages
173
Retour