Excel VBA Summen eines variablen Bereiches bilden
Servus Leute,
ihr habt mir schon oft bei Problemen mit VBA geholfen, deswegen denke ich, dass ihr mir auch jetzt helfen könnt.
Ich muss in einem großen Makro (Also es geht nicht ohne Makro!) eine Summenformel bilden, von einem Bereich der variabel ist, da Monat für Monat neue Datenblätter so bearbeitet werden sollen.
Ich habe den Bereich über Suchen-Funktionen und Variablen "e" und "f" definiert (e ist Anfang, f ist Ende)
Diesen Bereich habe ich als Range definiert
Dim Bereich1 As Range
Set Bereich1 = Tabelle1.Range("E" & e, "E" & f)
Und will in einer variablen Zelle die Summe angezeigt bekommen, es scheitert aber bisher:
Tabelle1.Range("E" & b + 11).Value = Application.WorksheetFunction.Sum(Bereich1)
Könnt ihr mir helfen? Danke im Voraus :)
2 Antworten
Bei mir klappt es. In der Theorie hast du alles richtig gemacht. Mein Beispiel:
Sub SumBereich()
Dim Bereich1 As Range
Dim b, e, f
b = 5: e = 1: f = 3
Set Bereich1 = Tabelle1.Range("E" & e, "E" & f)
Tabelle1.Range("E" & b + 11).Value = Application.WorksheetFunction.Sum(Bereich1)
End Sub
Was passiert den bei dir? Fehlermeldung?
Debugge mal oder ersetze b, e und f durch fixe Werte zum Testen. Schaue außerdem, ob die Excelfunktion, wenn du sie direkt ins Sheet einträgst, ein Ergebnis liefert.
Habs grade mit fixen Werten gemacht, da hats funktioniert... Komisch, ich hoffe es klappt jetzt, und danke für die schnelle Hilfe!
Sorry, ich hatte diesen Thread nicht gesehen (ich meine auch gar nicht angezeigt bekommen), als ich meine Antwort geschrieben habe.
Dim Bereich1 As Range
Set Bereich1 = Sheets("Tabelle1").Range("E" & e & ":E" & f)
Tabelle1.Range("E" & b + 11).Value = Application.WorksheetFunction.Sum(Bereich1)
So sieht der Text aus, er funktioniert mit fixen zahlen, aber sobald ich die variablen verwende wird in die bestimmte Ausgabezelle ("E"&b+11) kein Wert angezeigt, auch steht keine Formel drin, hab ihr ne Erklärung dafür?
Dann debugge doch einfach. Setze einen Haltepunkt und schaue dir die Werte in e, f und b an. An viel mehr kann es nicht liegen, wenn die Summe über denselben Bereich gebildet wird.
Du musst natürlich auch die zweite Referenz korrigieren.
Also auch Sheets("Tabelle1").Range:
Sheets("Tabelle1").Range("E" & b + 11).Value = Application.WorksheetFunction.Sum(Bereich1)
Klappt es so?
Ich wusste auch nicht, dass man "Tabelle1." schreiben kann. In meinem Test ging das aber, falls du das meinst. Ich finde diese Variante sogar besser, da ich Objekte ungern als Zeichenkette anspreche.
Bei VBS ist mir dieses CreateObject("Scripting.FileSystemObject") ein Graus.
Ich gehe mal davon aus das e und f Integer Varaiablen sind.
Dann sollte es eigentlich so klappen:
Set Bereich1 = Sheets("Tabelle1").Range("E" & e & ":E" & f)
Oder?
Bei mir wird nichts in die betroffene Zelle eingetragen, als ob ich die Funktion nie geschrieben hätte, ich probier mal deine.