je sais pas car je voudrais que tout se fasse automatiquement
j'ai un peu évolué dans l'avancement de mon fichier mais la, je bloque sur un tdc
car vu que les lignes de mon tableau (apres filtre auto suivant date) sont variables, comment le tdc ou mon vba peut il gerer le nombre de lignes
je te joins une partie du code
le tableau a environ 2500 lignes (variable) et L colonnes
le but est de faire des filtres suivant des dates et des tdc
an debut, un usf demande le mois et l'année
Option Explicit 'oblige à déclarer toutes les variables
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
'Ajoute les mois dans la combobox1
mois.AddItem 'janvier'
mois.AddItem 'février'
mois.AddItem 'mars'
mois.AddItem 'avril'
mois.AddItem 'mai'
mois.AddItem 'juin'
mois.AddItem 'juillet'
mois.AddItem 'août'
mois.AddItem 'septembre'
mois.AddItem 'octobre'
mois.AddItem 'novembre'
mois.AddItem 'décembre'
mois.ListIndex = 0 'affiche 'janvier'
annee.Value = '2005'
End Sub
Private Sub CommandButton1_Click() 'bouton 'Ok'
Dim an As String
Dim mo As String
Dim DateRef As Date
an = Me.annee.Value 'il faut appeler le formulaire Me
mo = Me.mois.ListIndex + 1
DateRef = Format((mo + 1), 0) & '/01' & '/' & an
MsgBox annee.Value & ' & ' & mois.Value 'il ne faut pas mettre de =
'Range('A1').Select = mo
Unload Me 'vide et ferme l'UserForm1
Sheets('données').Select 'applique le filtre auto sur la ligne 1 de 'données'
Rows('1:1').Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:='<' & DateRef, Operator:=xlAnd
Range(Cells(1, 1), Cells(4000, 12)).Select
Selection.Copy
Sheets('fin mois').Select
Cells(1, 1).Select
ActiveSheet.Paste
Range('B3').Select 'fabrication du TDC dans onglet 'TDC' à partir des données de 'fin de mois'
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
'fin mois!R1L1:R2453L12').CreatePivotTable TableDestination:= _
'[mnw2.xls]TDC!R1L1', TableName:='Tableau croisé dynamique1', _
DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTables('Tableau croisé dynamique1').AddFields RowFields:= _
Array('Depot', 'Emb')
With ActiveSheet.PivotTables('Tableau croisé dynamique1').PivotFields('Emb')
.Orientation = xlDataField
.Caption = 'Nombre de Emb'
.Function = xlCount
End With