Guten Morgen. Dies ist mein erstes mal dass ich hier einen Post schreibe, durch die Motivation da ich nur gute Erfahrungen mit Posts und der angebotenen Hilfe auf dieser Seite gemacht habe.
Ich versuche mich so gut wie möglich auszudrücken, um keine Komplikationen bei der Aufgabestellung zu hinterlassen. :)
Es gibt 2 Worksheets (Excel Dateien). X und Y.
Ich brauche ein VBA Makro, das im Worksheet "X" ab Zeile 156 in Spalte A zwischen den Begriffen "BUY" und "SELL" unterscheidet.
Wenn "BUY" in Spalte A steht, im Worksheet "X", soll es denn Wert aus der gleichen Zeile in Spalte F nehmen und mit dem Werten aus Spalte T aus Worksheet "Y" vergleichen. sollten 1 oder mehrere Treffer bei der Übereinstimmung vorkommen im Worksheet "Y", soll er die Werte von den getroffenen Zeilen in spalte E zusammen zählen (Summe) und dann die Summe im Worksheet "X" wieder in spalte D ausgeben.
Wenn "SELL" in Spalte A steht, im Worksheet "X", soll es denn Wert aus der gleichen Zeile in Spalte F nehmen und mit dem Werten aus Spalte S aus Worksheet "Y" vergleichen. sollten 1 oder mehrere Treffer bei der Übereinstimmung vorkommen im Worksheet "Y", soll er die Werte von den getroffenen Zeilen in spalte E zusammen zählen (Summe) und dann die Summe im Worksheet "X" wieder in spalte D ausgeben.
Ich habs jetzt so ausführlich erklärt wie ich konnte, ich denke es klingt komplizierter als es eigentlich ist. Aber ich komme echt nicht weiter als Anfänger. Evtl. kann mir ja jemand hier 20 Minuten seiner Zeit schenken und einen Code dazu schreiben :)
Dankeschön!
Sub test() For x = 156 To Worksheets("X").Cells(Rows.Count, 1).End(xlUp).Row If Worksheets("X").Cells(x, 1) = "BUY" Then Call zähle Worksheets("X").Cells(x, 4) = xx Else If Worksheets("X").Cells(x, 1) = "SELL" Then Call zähle2 Worksheets("X").Cells(x, 4) = xx End If End If Next End Sub
Sub zähle() xx = 0 cb = Worksheets("X").Cells(x, 6) Set zelle = Worksheets("y").Range("T:T").Find(what:=cb, Lookat:=xlWhole) If Not zelle Is Nothing Then ersteAdresse = zelle.Address Do xx = xx + Worksheets("y").Cells(zelle.Row, 5).Value Set zelle = Worksheets("y").Range("T:T").FindNext(zelle) Loop While Not zelle Is Nothing And zelle.Address <> ersteAdresse End If End Sub
Sub zähle2() Dim cb Dim zelle As Range Dim ersteAdresse xx = 0 cb = Worksheets("X").Cells(x, 6) Set zelle = Worksheets("y").Range("S:S").Find(what:=cb, Lookat:=xlWhole) If Not zelle Is Nothing Then ersteAdresse = zelle.Address Do xx = xx + Worksheets("y").Cells(zelle.Row, 5).Value Set zelle = Worksheets("y").Range("S:S").FindNext(zelle) Loop While Not zelle Is Nothing And zelle.Address <> ersteAdresse End If End Sub