Excel VBA Hilfe

Eddymaniac

Erfahrenes Mitglied
Hallo Leute,

habe ein ganz konkretes Problem in Excel das ich mit Formeln lösen wollte da ich kaum VB kann. Leider funktioniert das nicht so wie ich dachte und daher wende ich mich an euch.

Ich habe mehrere Sheets (die ersten vier) in denen ich nach einem text suchen will. Der Text der gesucht wird steht im fünften sheet. Dort, neben dem Text soll jetzt eine Summe entstehen.

Die vier ersten sheets sind strukturell so aufgebaut, dass z.B. in A1 der gesuchte Text steht und in A2 und A3 dann die Werte stehen, die es aufzusummieren gilt.

Konkret also brauche ich eine Funktion die nach jeder Änderung die entprechenden Sheets durchläuft und nach meinem Text such. Wird der Text gefunden, sollen die beiden Werte in den darunter stehenden Zeilen zusammengezählt werden.

Kann mir dabei jemand helfen?


Gruß,
Eddy
 
In den Tabellen 1 bis 4 stehen die Werte also immer so drin

Code:
A1  |  Text
A2  |  123,00
A3  |  567,00

und in Tabelle 5 soll jetzt das Ergebnis aus 123 + 567 angezeigt werden?

Die Frage ist jetzt, steht in Tabelle 5 immer nur 1 Begriff nach dem gesucht wird und ist das exakt das Wort wie es in den Tabellen 1-4 auch steht?
 
Code:
A1   | Text
A2   | 123,00
A3   | 567,00


A7   | Text
A8   | 543,00
A9   | 123,00

D7   | Text
D8   | 890,00
D9   | 661,00

Berechnung:
123,00 + 567,00 + 543,00 + 123,00 + 890,00 + 661,00

In Tabelle 5 ist eine Liste aller möglicher Texte
Code:
A1   | Text
A2   | Text2
A3   | Text3

B1   | Summe (aus übereistimmendem Text)
B2   | Summe                      "
B3   | Summe                      "


Hoffe das ist verständlich ;)
 
Das sieht jetzt aber anders aus wie du es am Anfang beschrieben hast. Es können also mehrere Begriffe mit jeweils 2 Zahlen in den einzelnen Tabellen stehen?

Das dann auch noch sowohl unter- als auch nebeneinander!?
 
ja, so ist es. Die Idee ist halt unabhängig von der Struktur quasie pauschal in allen Feldern nach dem entsprechenden Text zu suchen und wenn er gefunden wird, in den zwei Zeilen darunter den Wert holen und addieren.

Sorry wenn ich mich etwas ungünstig ausgedrückt hatte...
 
Sorry, habe noch mehr Fragen.

Stehen du Werte lückenlos in den Tabellen oder gibt es leere Zellen dazwischen und stehen in den Tabellen verschiedene Begriffe oder immer nur einer?
 
Also es stehen immer verschiedene Begriffe (können sich auch wiederholen), die jedoch Textlich exakt übereinstimmen müssen. Es kann jeder Text in jeder Tabelle auch mehrfach vorkommen. Dazwischen können auch leere Zellen sein. Wie oben bereits beschrieben...
 
Hier mal ein erster Versuch:

Visual Basic:
Function erg(wert As String) As Double
Dim spalten As Long
Dim zeilen As Long
Dim w As Long
Dim z As Long
Dim s As Long
Dim summe As Double

summe = 0

For w = 1 To Worksheets.Count - 1

    spalten = Worksheets(w).Cells(1, Columns.Count).End(xlToLeft).Column
    zeilen = Worksheets(w).Cells(Rows.Count, 1).End(xlUp).Row
    
    For s = 1 To spalten
        For z = 1 To zeilen
            If Worksheets(w).Cells(z, s).Value = wert Then
                summe = summe + Worksheets(w).Cells(z + 1, s).Value + Worksheets(w).Cells(z + 2, s).Value
                z = z + 2
            End If
        Next z
    Next s

Next w

erg = summe
End Function

Du schreibst jetzt in Tabelle5 folgendes:

Code:
Spalte A      | Spalte B
suchbegriff 1 | =erg(A1)
suchbegriff 2 | =erg(A2)
 
Super!
Habe es gleich getestet und da es leider nicht funktioniert hat, habe ich einige Tests gemacht. Dabei habe ich herausgefunden, dass das Aufsummieren wohl an der If Abfrage scheitert. Der If then Zweig wird nie erreicht.

Evtl. noch ne Idee woran das liegen könnte?
 
Kann es sein das bei dir die Datei doch anders aufgebaut ist. Wenn ich das bei mir teste, klappt es wunderbar.

Ich hänge hier mal meine Datei dran (hier ist wieder die Endung von XLS in TXT geändert. Einfach wieder umbenennen).
 

Anhänge

  • Berechnung.txt
    26 KB · Aufrufe: 14

Neue Beiträge

Zurück