Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

filtrage de donnés

  • Initiateur de la discussion Initiateur de la discussion garrec
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

garrec

XLDnaute Occasionnel
Bonjour

J'ai un code VBA qui me tire des informations: les achats/ventes de la veille d'un onglet (Daily Equity) à un autre (All) . cf fichier ci joint onglet All pour appréhender ce que me donne le VBA.

Code:
Function classement(sel_ou_buy As String)
    Application.ScreenUpdating = False
    ' Ici on va rechercher la 1ere bande libre dans le sheets "All"
    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


Et la sub pour l'appeler

Code:
Sub classementsellbuy()
    classement "Sell"
    classement "Buy"
End Sub


Seulement j'aimerais qu'il copie colle les lignes en valeur dans l'onlet All (pour l'instant ce n'est pas fait en valeur). J'ai mi que j'aimerais obtenir dans l'onglet All2.


De plus il y a des plages de couleurs a respecter pour chaque opérations similaires (cf All2 grise blanche grise blanche ect ect). C'est a dire que si on prend la premiere opération de la veille (dans l'onglet daily equity), pour que la suivante soit copier coller juste en dessous il faut que la colonne D G et P soit identiques à la précedente. Avec le fichier ça parait plus simple 🙂


Sinon on change de plage de couleur et on recommence le même systeme

Est ce possible de faire ça en VBA ?

Merci d'avance
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
264
Réponses
4
Affichages
671
Réponses
5
Affichages
703
Réponses
2
Affichages
329
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…