Rapport de message :*
 

des lignes qui sont sensées aller par paire

Titre du sujet : des lignes qui sont sensées aller par paire
par niwed10 le 25/11/2008 12:32:34

Bonjour à tous

J’aurais besoin d’un coup de main pour une macro VBA:

J’ai une liste avec une 20ene de critères en colonne dont : quantité ; prix ; strike
Et Cette liste est composée de paires que je veux associer et séparées d’une ligne vierges : je m’explique :

Je veux que cette liste qui est en vrac soit retrié afin de mettre dans un nouvel onglet les paires ensemble (l’une en dessous de l’autre) et séparé des autres paires par une ligne vierge.
Et les lignes uniques n’ayant pas de paire allant dans un autre onglet et sont séparé les unes des autres par une ligne vierge.

Pour l’instant j’ai crée une macro qui à partir d’une liste en vrac, filtre certains critères et le copie trié en fonction de la quantitée, du prix et du strike dans un nouvel onglet.

Bref ! Mon problème est d’avoir le code d’une boucle qui va :

1- prendre la 1ere ligne du tableau et voir si via 3 critères disons (quantitée, prix, strike), il existe au moins 2 de ces critères dans une autre ligne de la liste ( voir étendre ça à plus de critères pour ne pas avoir d’erreur de paire qui ne sont pas ensemble alors qu’elle devrait l’être).
2-les/la copier dans un autre onglet et les/le espacer d’une ligne vierge avec la prochaine paires.
-Puis passer à la seconde ligne.

NB : Il est possible d’avoir des trio

Le but est donc de retrouver des lignes qui sont sensées aller par paire mais qui peuvent avoir un critère différent et de les separé par une ligne vierge.

J’aimerais que qqun me montre son code s’il a une macro de ce genre ou des parties qui pourraient m’aider. Parce que je ne vois pas comment commencer le code…
En vous remerciant bien d’avance…

PS : Si vous avez rien compris, merci de me le dire, que je réexplique !

Je vous joints mon fichier ce soir.
Voici le début de mon code en attendant:

Sub DI()

Sheets("Global").Select
Range("A1:AP1").Select
Selection.AutoFilter

' filtrage DES BROKERS NON DMA 00 et copie ds la sheet nondma00

Range("A1").Select
Selection.AutoFilter field:=8, Criteria1:="<>*DMA*", Operator:=xlAnd
Cells.Select
Selection.Copy

Sheets("NonDMA00").Select
Range("A1").Select
ActiveSheet.Paste

' triauto
With Sheets("NonDMA00")
With .Range("A1").CurrentRegion
.Sort Key1:=.Range("U2"), Order1:=xlAscending, Key2:=.Range("W2"), Order2:=xlAscending, Header:=xlYes
End With
End With

' filtrage DES BROKERS DMA 00 et copie ds la sheet dma00

Sheets("Global").Select
Range("A1").Select

Selection.AutoFilter field:=8, Criteria1:="DMA 00"
Cells.Select
Selection.Copy
Sheets("DMA00").Select
Range("A1").Select
ActiveSheet.Paste

With Sheets("DMA00")
With .Range("A1").CurrentRegion
.Sort Key1:=.Range("U2"), Order1:=xlAscending, Key2:=.Range("W2"), Order2:=xlAscending, Header:=xlYes
End With
End With

Cells.Select
Cells.EntireColumn.AutoFit

end Sub