extraction donnée VBA

garrec

XLDnaute Occasionnel
Bonjour a tous!!

dans le fichier ci joins j'aimerais bien tirer les opérations de la veille listées dans l'onglet "Daily Equity" vers l'onglet "All2" (pour pouvoir passer sur le site j'ai séparé les onglets).

Il y a des groupes de ligne (4 par 4, un blanc, un gris, un blanc, un gris ect ect) dans l'onglet All2. (avec le fichier sous les yeux c'est plus clair)

J'aimerais que viennent s'incerrer dans ces groupes de 4 lignes, les opérations de la veille listées dans l'onglet "Daily Equity". (au risque de me répeter )

Viennent sur la même plage de couleur (grises ou blanches) les opérations qui ont en colonne D de l'onglet "Daily equity" le même Name et en colonne G de "Daily Equity" le même sens de transaction et en colonne et le même execution price dans la colonne P.

J'ai fait un exemple of course dans le fichier!

Et la je ne vois pas comment faire ceci en VBA

C'est possible....?


Pour l'instant j'ai une macro ci dessous et qui me donne ce qu'il y a dans le fichier ESSAI.

Code:
Function classement(sel_ou_buy As String)
    Application.ScreenUpdating = False
    ' Ici on va rechercher la 1ere bande libre dans le sheets "All"(grise ou blanche on s'en fou)
    Dim ligne As Long, veille As Date, i As Long
    For i = 13 To Sheets("All").Range("A" & Rows.Count).Row Step 4
        If Sheets("All").Range("A" & i) = "" Then
            ligne = i
 
            Exit For
        End If
    Next
 
    'Maintenant on va trier le sheets("Daily Equity")
    'tout dabors on determine la veille
    veille = Format(CDate(Date - 1), "mm/dd/yyyy")    ' et voila
    MsgBox veille
    'maintenant on va chercher les lignes avec cette date et qui on "Sell" ou "Buy" en colonne "G"
    With Sheets("Daily Equity")
 
        'trie des ligne avec "Sell"
        For Each cel In .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
            'on va prendre les 10 1ers caractere dans la cel dans la colonne A
            datecel = Left(cel.Text, 10)
            'si la date =veille et la cellule g de la meme ligne = la variable "sel_ou_buy" qui a été instruite dans la sub classementsellbuy
            If datecel = veille And .Range("G" & cel.Row) = sel_ou_buy Then
                'si c'est bon on copie la ligne complete
                cel.EntireRow.Copy
                Sheets("All").Select
                'on colle dans le sheets("All") dans la 1ere ligne de la premiere bande libre que l'on a trouver en debut de fonction
                Rows(ligne & ":" & ligne).Select
                ActiveSheet.Paste
                'on ajoute un a la variable ligne pour la suite
                ligne = ligne + 1
            End If
 
        Next
    End With
 
End Function




Bonne journée

Thanks in advance

Ai je été assez clair?

Garrec
 

Pièces jointes

  • daily equity.xlsx
    33.7 KB · Affichages: 45
  • All 2.zip
    241.9 KB · Affichages: 24
  • Copie de ESSAI.zip
    167 KB · Affichages: 12
  • Copie de ESSAI.zip
    167 KB · Affichages: 14
  • Copie de ESSAI.zip
    167 KB · Affichages: 25
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa