VBA programmation

Bonjour à tout le monde,

Je voudrais réaliser un programme sur VBA excel mais j'ai un peu de difficulté à le faire:

Voilà j'ai téléchargé des indices journaliers de S&p 500 de 1950, il y a alors plus de 16000 données. En calculant la rentabilité de ces indices c'est à dire (St-St-1)/St-1 je me suis aperçu qu'il y a des rentabilités nulles (=0). Donc j'aimerais effacer toutes les données qui donnent des rentabilités nulles et vu qu'il y a plus de 16000 données c'est pas évident vous concevez! Ce qui m'amène vers vous, Pourriez vous s'il vous plait me donner des conseils ou me diriger vers des [/forum/ forums] avec des questions similaires ou dans la limite du possible des lignes de code pour avoir le résultat voulu.

Ces données sont téléchargeables ici

Bien cordialement


http://fr.finance.yahoo.com/q/hp?s=%5EGSPC

Bonjour,

A quoi correspond la formule

(St-St-1)/St-1 

dans le fichier importé?

Cdlt

bonjour

Désolé,

cette formule correspond aux valeurs de (l'Adj close- l'Adj close(-1))/(adj close(-1) c'est la rentabilité

Re,

Pour résumer, après avoir trier le csv par date, si à date n et date n-1, correspond le même Adj Close, il faudrait supprimer la ligne?

Si c'est le cas, le nombre de lignes ne variera pas sensiblement.

A te relire.

Cdlt

edit: soit 124 lignes sur 16080

Bonsoir

Voici le fichier excel . Je voudrais un programme simple qui me permettra de supprimer tous les données (Adj close) qui donnent des rentabilités nulles car je dois le faire sur plus de 16000 données mais je vous envoie un extrait de ces données pour avoir des lignes de code.

Cdt

Re,

Une proposition.

A intégrer dans ton classeur (ALT F11 / Dans Modules, insérer un module et copier le code)

A te relire si questions.

Option Explicit
Public Sub traitement()
Dim ws As Worksheet
Dim Dl As Long, i As Long
    Application.ScreenUpdating = False
    Range("A1:G1").Select
    Selection.AutoFilter
    ActiveWorkbook.Worksheets("table").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("table").AutoFilter.Sort.SortFields.Add Key:= _
        Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("table").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Dl = Range("A" & Rows.Count).End(xlUp).Row
    For i = Dl To 2 Step -1
        If Cells(i, 7) = Cells(i - 1, 7) Then Cells(i, 7).EntireRow.Delete
    Next
    Set ws = Nothing
End Sub

re Merci énormément j'ai essayé mais ça marche pas,

mais je vais essayer de modifier pour voir

Rechercher des sujets similaires à "vba programmation"