Extraction données par rapport mois et année

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,
 

cathodique

XLDnaute Barbatruc
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).
 

cathodique

XLDnaute Barbatruc
[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,
 

Pierrot93

XLDnaute Barbatruc
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....
 

cathodique

XLDnaute Barbatruc
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,
 

cathodique

XLDnaute Barbatruc
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,
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla