Microsoft Excel

Herbers Excel/VBA-Archiv

Werte aus Worksheets vergleichen + Summe

Betrifft: Werte aus Worksheets vergleichen + Summe von: Lukas Greghead
Geschrieben am: 29.09.2020 11:05:57

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!

Betrifft: AW: Werte aus Worksheets vergleichen + Summe
von: Lutz Fricke
Geschrieben am: 29.09.2020 13:29:44

Hallo Lukas,

wozu benötigst Du das Makro?
Wenn ich Deine Beschreibung richtig verstehe, reicht Dir die Summewenn-Funktion.

Evtl. poste doch einfach eine Beispieldatei.

Gruß,
Lutz

Betrifft: AW: Werte aus Worksheets vergleichen + Summe
von: Lukas Greghead
Geschrieben am: 29.09.2020 13:35:25

Das Makro soll permanent auf verschiedene Y Dateien anwendwbar sein, also tuh ich dann immer nur die pfade ändern auf die das makro von der x datei zugreifen soll :)

Betrifft: AW: Werte aus Worksheets vergleichen + Summe
von: chris b.
Geschrieben am: 29.09.2020 14:13:15

Hallo, ich bin zwar auch nur Änfänger aber das was ich da zusammengebastelt habe funktioniert.

Da sonst keine weitere VBA Antwort gekommen ist ist hier mein Vorschlag.

LG Hoffe ich konnte helfen



Option Explicit



Dim x

Dim xx

Dim cb

Dim zelle As Range

Dim ersteAdresse
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


Betrifft: AW: Werte aus Worksheets vergleichen + Summe
von: Lutz Fricke
Geschrieben am: 30.09.2020 16:01:49

Hallo Lukas,

Du kannst doch auch den Dateinamen eingeben und bekommst die Summe.
=SUMMEWENN(INDIREKT("'["&G1&".xlsx]Tabelle1'!A:A");E1;INDIREKT("'["&G1&".xlsx]Tabelle1'!B:B"))

In der Zelle G1 steht der Dateiname.

Gruß,
Lutz