1 pièce(s) jointe(s)
rajouter un filtre texte dans code
Bonjour
Mon code ci dessous me permet de tirer un tableau plus succint d'un onglet à un autre (juska la tout va bien :mrgreen:)
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 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| Sub Macro1()
Dim ad As Range 'déclare la variable ad (Anciennes Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Set ad = Sheets("Port_MOMENTUM").Range("BT173").CurrentRegion 'définit la plage des anciennes données
If ad.Rows.Count > 1 Then 'condition : si ad contient plus d'une seule ligne
Set ad = ad.Offset(1, 0).Resize(ad.Rows.Count - 1, ad.Columns.Count) 'redéfinit ad (sans la première ligne)
ad.Clear 'efface ad
End If 'fin de la condition
With Sheets("Daily Equity") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée de la colonne A
Set pl = .Range("A2:A" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
For Each cel In pl 'boucle sur toutes les cellule cel de la plage pl
'condition : si la date correspond
If Day(cel.Value) = Day(Date) And Month(cel.Value) = Month(Date) And Year(cel.Value) = Year(Date) Then
'définit la cellle de destination
Set dest = IIf(Sheets("Port_MOMENTUM").Range("BT173") = "", Sheets("Port_MOMENTUM").Range("BT173"), Sheets("Port_MOMENTUM").Cells(Application.Rows.Count, 72).End(xlUp).Offset(1, 0))
dest.Value = cel.Value 'récupère la date
dest.Offset(0, 1).Value = cel.Offset(0, 4).Value 'récupère le code isin
dest.Offset(0, 2).Value = cel.Offset(0, 3).Value 'reçupère le nom de la valeur
dest.Offset(0, 3).Value = cel.Offset(0, 12).Value 'récupère la devise
dest.Offset(0, 4).Value = cel.Offset(0, 11).Value 'récupère la quantité
dest.Offset(0, 5).Value = cel.Offset(0, 6).Value 'récupère le sens
dest.Offset(0, 6).Value = cel.Offset(0, 15).Value 'récupère le cours
End If 'fin de la condition
Next cel 'prochaine celllule de la boucle
End Sub |
J'aimerais bien rajouté un filtre qui concerne la colonne B (dans le 1er onglets) il faudrait (:D) qu'il y ai marqué "Momentum" pour que la ligne présente dans le premiere onglets viennent dans le tableau du 2eme?
Mais comment faire vu qu'il n'y a pas de boucle dans le code?
Je pensais rajouté
Code:
tl = .Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée de la colonne B
Code:
Set ql = .Range("B2:B" & tl) 'définit la plage ql
et donc la
Code:
If Day(cel.Value) = Day(Date) And Month(cel.Value) = Month(Date) And Year(cel.Value) = Year(Date)
j'aurais intercallé une autre condition avec And??? Mais je m'y perd!!
Thanks in advance