Définition de variable en date dans autofilter
Bonjour à tous,
Je planche depuis des heures sur un bout de VBA qui est tout juste sur le point de bien fonctionner. J'en appel à vous car je suis sur le point de baisser les bras à force de fouiller pour trouver une réponse.
J'ai deux feuilles, la 1er est une base de données "Contrats" et l'autre un sommaire "Data_sommaire".
Mes nom de colonne dans "Contrats" sont à la ligne 7 et mes données commencent à la ligne 9. Mes données sont réparties en colonne de A à Q. Je vais avoir éventuellement bien au-dessus de 5 000 lignes...
Je veux extraire (filtrer et copier) les lignes de données dans "Contrats" dont la date en colonne E (5e colonne) correspondent à mon critère (ma date...) et les coller ensuite à partir de la cellule (range) B5 de ma feuille "data_sommaire).
Je rencontre deux problèmes:
1 - J'ai fait des tests avec d'autres types qu'une date (ex.: Dim ref1 as string, ref1 = "vente") comme critère, et mon code fonctionne. Mais, dès que j'utilise une date, ça ne fonctionne plus. J'ai bien changée pour Date ou Long, rien à faire...?!
2 - Quand j'utilise autre chose qu'une date et que ça fonctionne, par défaut, la 1er ligne coller dans "data_sommaire" est toujours ma 1er ligne de données dans ma feuille "Contrats". QU'est-ce qui ne fonctionne pas dans mon code?!
Voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
Sub CopyData()
'Définir la variable de mon critère
Dim ref1 As Long
ref1 = Worksheets("Admin").Range("d18").Value
'Filtrer les données selon mon critère
Worksheets("Contrats").Activate
LastRow = Range("A65536").End(xlUp).Row
Range("A9:q" & LastRow).AutoFilter Field:=5, Criteria1:=ref1
'Selectionner et copier les données filtrées
Range("A9:q" & LastRow).SpecialCells(xlCellTypeVisible).Copy
'Coller les données dans mon sommaire
Worksheets("data_sommaire").Range("b5").PasteSpecial xlPasteValues
Worksheets("Contrats").Activate
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False
Application.CutCopyMode = False
End Sub |
Je définis la valeur de ma variable (ma date) dans une 3 feuille nommée "Admin" en cellule d18.
Quelqu'un a une idée du problème?!
Un grand merci!