Extraction données par rapport mois et année

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 !

cathodique

XLDnaute Barbatruc
Bonjour,

J'extrais des données sur une feuille à partir d'une BD, en utilisant un tableau. Les critères d'extraction sont dans 5 cellules, l'une d'elle contient une date. Je voudrais prendre comme critères le mois et l'année (pas le jour).
Code:
With O

     Val1 = .Range("C1").Value        'type
     Val2 = .Range("F1").Value        'date MOIS ET ANNEE
     Val3 = .Range("C2").Value        'F1
     Val4 = .Range("G4").Value         'F2
     Val5 = .Range("C3").Value        'F3
    
    For i = 1 To LastLig - 1
    
      If Tb(i, 1) = Val1 And Tb(i, 3) = Val2 And Tb(i, 4) = Val3 And _
      Tb(i, 18) = Val4 And Tb(i, 5) = Val5 Then

            j = j + 1

            ReDim Preserve RES(1 To 18, 1 To j)
            'Le compteur est inscrit en 1ère ligne
            RES(1, j) = j       
            RES(2, j) = Round(Tb(i, 7), 2)  
            RES(3, j) = Tb(i, 8)    
            RES(4, j) = Tb(i, 9)   
            RES(5, j) = Tb(i, 10)   
            RES(6, j) = Tb(i, 11)   
            RES(7, j) = Tb(i, 12
            RES(8, j) = Tb(i, 13)    
            RES(9, j) = Tb(i, 14)
            RES(10, j) = Tb(i, 15)
            RES(11, j) = Tb(i, 16)
            RES(12, j) = Tb(i, 17)
            
        End If
        
    Next i
    
    LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If LastLig > 8 Then .Range("A8:M" & LastLig).Clear
    'on transfère le transposé de Res
    If j > 0 Then .Range("A8").Resize(j, 18) = Application.Transpose(RES)

End With
Ma difficulté est comment ajouter cette condition (mois et année).

En vous remerciant par avance.

Cordialement,
 
Re : Extraction données par rapport mois et année

Bonjour Pierrot93,

Je te remercie beaucoup pour ton aide. Mais j'avais déjà consulté l'aide. Je crois que j'ai mal défini ma difficulté. C'est par rapport au tableau que je ne maitrise pas bien.

Pour Val2 je pourrais faire ceci
Code:
Val2 = Month(.Range("F1").Value) & Year(.Range("F1").Value)

Je ne sais pas comment je dois procéder avec Tb(i, 3).
 
[RESOLU] : Extraction données par rapport mois et année

Re,

Merci, j'ai compris une petite chose aux tableaux aujourd'hui. Comme indiquer dans le code, Tb(i,3) = Val2 et Val2 c'est une date, ceci implique que Tb(i,3) est un tableau qui contient des dates.
Code:
Month(Tb(i, 3)) & Year(Tb(i, 3)) = Val2
J'ai appris que tableau et feuille c'est pratiquement identique.code qui fonctionne
Code:
With O

     Val1 = .Range("C1").Value        'type
     Val2 = Month(.Range("F1").Value) & Year(.Range("F1").Value)         'date MOIS ET ANNEE
     Val3 = .Range("C2").Value        'F1
     Val4 = .Range("G4").Value         'F2
     Val5 = .Range("C3").Value        'F3
   
    For i = 1 To LastLig - 1
   
      If Tb(i, 1) = Val1 And Month(Tb(i, 3)) & Year(Tb(i, 3)) = Val2 And Tb(i, 4) = Val3 And _
      Tb(i, 18) = Val4 And Tb(i, 5) = Val5 Then

            j = j + 1

            ReDim Preserve RES(1 To 18, 1 To j)
            'Le compteur est inscrit en 1ère ligne
            RES(1, j) = j      
            RES(2, j) = Round(Tb(i, 7), 2)  
            RES(3, j) = Tb(i, 8)    
            RES(4, j) = Tb(i, 9)  
            RES(5, j) = Tb(i, 10)  
            RES(6, j) = Tb(i, 11)  
            RES(7, j) = Tb(i, 12
            RES(8, j) = Tb(i, 13)    
            RES(9, j) = Tb(i, 14)
            RES(10, j) = Tb(i, 15)
            RES(11, j) = Tb(i, 16)
            RES(12, j) = Tb(i, 17)
           
        End If
       
    Next i
   
    LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
    If LastLig > 8 Then .Range("A8:M" & LastLig).Clear
    'on transfère le transposé de Res
    If j > 0 Then .Range("A8").Resize(j, 18) = Application.Transpose(RES)

End With

Merci quand même Pierrot93.

Cordialement,
 
Re : Extraction données par rapport mois et année

Re,

bah....


Comme indiquer dans le code, Tb(i,3) = Val2 et Val2 c'est une date, ceci implique que Tb(i,3) est un tableau qui contient des dates.

ceci ne renverra pas une date...
Code:
Val2 = Month(.Range("F1").Value) & Year(.Range("F1").Value)
A voir comment tu as définie et typée cette variable...

Comme indiquer dans le code, Tb(i,3) = Val2
tu ne nous montres pas cette partie de code.... difficile juste avec un bout de code sorti de son contexte....
 
Re : Extraction données par rapport mois et année

Mon cher Pierrot93,

Je connais bien tes compétences, donc tu n'as rien à me prouver.

Je n'ai mis que la partie qui me causer problème, c'était juste pour vous facilité la tâche.
A voir comment tu as définie et typée cette variable... Tb(i,3)
je l'ai déclaré en string.

La prochaine fois je mettrai le code complet.

Cordialement,
 
Re : Extraction données par rapport mois et année

Je constate que tu as très mal pris la chose. Il n'était nullement dans mon intention de te vexer.

C'est à moi de faire des excuses et non à toi.

Alors toutes mes excuses. Je ne suis pas un ingrat, tu m'as aidé par le passé, c'est pour cela que j'ai parlé de tes compétences.

Libre à toi, de répondre ou non à mes posts.

Cordialement,
 
- 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
8
Affichages
233
Réponses
40
Affichages
3 K
Réponses
4
Affichages
177
Réponses
5
Affichages
236
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
831
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour