Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA - Werte in Spalten addieren und Summe kopieren

VBA - Werte in Spalten addieren und Summe kopieren
07.06.2004 17:32:18
Fritz
Hallo VBA-Spezialisten,
in der Tabelle Plan B können(!)in der Spalte B ab Zeile 5 (maximale bis zur Zeile 400)Datumswerte enthalten sein. Diese sind dann aufsteigend (nicht unbedingt durchgängig, siehe Beispiel) enthalten sein. Es soll in diesem Bereich (B5:B400) nach dem Datum gesucht werden, das in Zelle Q1 eingetragen ist. Wird dieses Datum im durchsuchten Bereich gefunden, sollen (spaltenweise!) ab dieser Zeile (bis zur Zeile 400) alle Zahlen der Spalten E, F, G, H und I addiert werden und in die jeweiligen Summen in die Zellen R2 (Summe aus Spalte E), S2 (Summe aus Spalte F) T2 (Summe aus Spalte G), U2 (Summe aus Spalte H) und V2 (Summe aus Spalte I) kopiert werden.
Der nachfolgende Auszug aus der Tabelle soll das Ganze veranschaulichen (gelb unterlegt in diesem Fall der zu addierende Bereich, grau unterlegte Zellen enthalten die (in diesem Fall gewünschten Ergebnisse).
wichtige Hinweis: Nicht für jeden Werktag muss zwangsläufig eine muss im zu durchsuchenden Bereich zwangsläufig eine 1 eingetragen sein!
Plan-B
 ABEFGHIQRSTUV
1       06.04.2004MoDiMiDoFr
2        12211
4Nr.DatumMoDiMiDoFr      
5104.04.04           
6105.04.041          
7106.04.04 1         
8107.04.04  1        
9108.04.04   1       
10215.05.04           
11216.05.04           
12217.05.041          
13218.05.04 1         
14219.05.04  1        
15220.05.04           
16221.05.04    1      
17222.05.04           
18223.05.04           
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Bereits an dieser Stelle vielen Dank für jede Form von Hilfe. Ich bin - wegen fehlender VBA-Kenntnisse nicht in der Lage, diese Aufgabe ohne eure Hilfe zu
bewerkstelligen.
Mfg
Fritz
Anzeige
Was soll geschehen wenn Datum nicht gefunden? owT
Reinhard
owT=ohne weiteren Text :-)
AW: Was soll geschehen wenn Datum nicht gefunden? owT
Fritz
Hallo Reinhard,
dann sollten jeweils die Werte des gesamten Bereichs (Zeile 5 bis 400) addiert und die Summe kopiert werden.
Danke für deine Bemühungen.
Gruß
Fritz
AW: Was soll geschehen wenn Datum nicht gefunden?
Reinhard
Hallo Fritz,
Sub datum() With Worksheets(1).Range("b5:b400") Set c = .Find(what:=CDate(Range("Q1")), LookIn:=xlFormulas, lookat:=xlPart) If Not c Is Nothing Then beginn = c.Row Else beginn = 5 End If End With For n = 0 To 4 Cells(2, 18 + n) = WorksheetFunction.Sum(Range(Cells(beginn, 5 + n), Cells(400, 5 + n))) Next n End Sub
Gruß
Reinhard
Anzeige
AW: Was soll geschehen wenn Datum nicht gefunden?
Fritz
Hallo Reinhard,
hatte einen dringenden Termin, so dass ich mich erst jetzt melden kann.
Ich habe dein Makro getestet.
Es wurden jedoch die Zahlen des gesamten Bereichs addiert, ich möchte jedoch erreichen,
dass nur die Werte von der Zeile ab, in der in der Spalte B das Datum das Datum steht, addiert werden und nicht der gesamte Bereich (die Zeiten, die vor dem entsprechenden Datum liegen, sollen also nicht einbezogen werden!
Wäre nett, wenn du mir den Code entsprechend anpassen kannst.
Auf jeden Fall vielen Dank für Deine Bemühungen.
Gruß
Fritz
Anzeige
AW: Was soll geschehen wenn Datum nicht gefunden?
Reinhard
Hallo Fritz,
..."dass nur die Werte von der Zeile ab, in der in der Spalte B das Datum das Datum steht, addiert werden und nicht der gesamte Bereich"...
?
Genau dieses macht doch das Makro?
Gruß
Reinhard
AW: Was soll geschehen wenn Datum nicht gefunden?
Fritz
Hallo Reinhard,
vielleicht ist mein Anliegen für dich besser nachvollziehbar, wenn ich dir eine Mappe hochlade, in der ich dein Makro ausgeführt habe. Darunter habe ich die Werte eingetragen, die das Makro nach meinen Vorstellungen im vorliegenden Beispiel liefern sollte.
Vielen Dank für deine bisherige Arbeit und danke für deine Geduld.
Gruß
Fritz
https://www.herber.de/bbs/user/7217.xls
Anzeige
AW: Was soll geschehen wenn Datum nicht gefunden?
Reinhard
Hi Fritz,
das Makro ist in Ordnung, nur muss natürlich der tabellenname angepasst werden,
also im Makro nicht Worksheets(1)
sondern Worksheets("Plan-B")
https://www.herber.de/bbs/user/7220.xls dort Tabelle"Plan-B"
bzw:
Sub datum() With Worksheets("Plan-B").Range("b5:b400") Set c = .Find(what:=CDate(Range("Q1")), LookIn:=xlFormulas, lookat:=xlPart) If Not c Is Nothing Then beginn = c.Row Else beginn = 5 End If End With For n = 0 To 4 Cells(2, 18 + n) = WorksheetFunction.Sum(Range(Cells(beginn, 5 + n), Cells(400, 5 + n))) Next n End Sub
Gruß
Reinhard
Anzeige
Vielen Dank!
Fritz
Hallo Reinhard,
vielen Dank.
Schönen Tag noch
Fritz
AW: VBA - Werte in Spalten addieren und Summe kopieren
Ramses
Hallo
muss es VBA sein, oder reicht auch eine Formel
Tabelle1
 ABCDEFGHIJKLMNO
1         Datum     
2         06.04.2004MoDiMiDoFr
3Nr.DatumMoDiMiDoFr   11201
4104.04.2004             
5105.04.20041            
6106.04.2004 11          
7107.04.2004  1          
8108.04.2004   1         
9215.05.2004             
10206.04.20041            
11217.05.20041            
12218.05.2004 1           
13219.05.2004  1          
14220.05.2004             
15206.04.2004  1 1        
16222.05.2004             
17223.05.2004             
Formeln der Tabelle
K3 : =SUMMENPRODUKT(($B$4:$B$17=$J$2)*C$4:C$17)
L3 : =SUMMENPRODUKT(($B$4:$B$17=$J$2)*D$4:D$17)
M3 : =SUMMENPRODUKT(($B$4:$B$17=$J$2)*E$4:E$17)
N3 : =SUMMENPRODUKT(($B$4:$B$17=$J$2)*F$4:F$17)
O3 : =SUMMENPRODUKT(($B$4:$B$17=$J$2)*G$4:G$17)
 
Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruss Rainer
Anzeige
AW: VBA - Werte in Spalten addieren und Summe kopieren
Fritz
Hallo Rainer,
hatte einen dringenden Termin, so dass ich mich erst jetzt melden kann.
Ich denke, die Sache ist nur mit VBA zu bewerkstelligen, da von der Zeile, in der in der Spalte B das Datum das Datum steht, nur die danach folgenden Zeilen addiert werden sollen und nicht der gesamte Bereich (die Zeiten, die vor dem entsprechenden Datum liegen, sollen also nicht einbezogen werden!
Gruß und nochmals vielen Dank
Fritz
Anzeige
Ich sehe das Problem nicht....
Ramses
Hallo
kleine Anpassung der Formel
Tabelle1
 ABCDEFGHIJKLMNO
1         Datum     
2         06.04.2004MoDiMiDoFr
3Nr.DatumMoDiMiDoFr   22411
4104.04.2004             
5105.04.20041            
6106.04.2004 11          
7107.04.2004  1          
8108.04.2004   1         
9215.05.2004             
10206.04.20041            
11217.05.20041            
12218.05.2004 1           
13219.05.2004  1          
14220.05.2004             
15206.04.2004  1 1        
16222.05.2004             
17223.05.2004             
18               
Formeln der Tabelle
K3 : =SUMMENPRODUKT(($B$4:$B$17>=$J$2)*C$4:C$17)
L3 : =SUMMENPRODUKT(($B$4:$B$17>=$J$2)*D$4:D$17)
M3 : =SUMMENPRODUKT(($B$4:$B$17>=$J$2)*E$4:E$17)
N3 : =SUMMENPRODUKT(($B$4:$B$17>=$J$2)*F$4:F$17)
O3 : =SUMMENPRODUKT(($B$4:$B$17>=$J$2)*G$4:G$17)
 
Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruss Rainer
Anzeige
AW: Ich sehe das Problem nicht....
Fritz
Hallo Rainer,
da die zu addierenden Werte aufgrund einer Wenn-Formel ermittelt werden, die als Falsch-Wert "" lieferte, funktionierte die Sache nicht. Habe die Formel jetzt umgestellt, so dass als Falschwert die Zahl 0 geliefert wird und jetzt klappts.
Damit kann ich prima leben. Ich dank Dir nochmals für deine Arbeit
Schönen Gruß
Fritz
Anzeige
Merci :-) Geschlossen m.T.
Ramses
Hallo
wenn dich die Nullwerte stören, kannst du diese ja unter Extras-Optionen ausblenden
Gruss Rainer
AW: Merci :-) Geschlossen m.T.
Fritz
Hallo Rainer,
alles klar, schönen Abend noch.
Gruß
Fritz
noch eine Frage!
Fritz
Hallo Rainer,
könnte man die Formel verändern, dass ausgehend vom gefundenen Datum in Spalte B die Werte in den Zeilen darüber bis einschließlich Zeile 5 (also die Werte der Vegangenheit) addiert und dann kopiert werden oder benötigt man dafür VBA?
Wäre nett, wenn Du mir noch mal helfen kannst.
Gruß
Fritz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte in Excel-Spalten addieren und Summe kopieren mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA die Werte in den Spalten E, F, G, H und I ab einem bestimmten Datum in Spalte B zu addieren und die Summen in die Zellen R2 bis V2 zu kopieren, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.
  3. Gib den folgenden Code ein:

    Sub datum()
       Dim c As Range
       Dim beginn As Long
    
       With Worksheets("Plan-B").Range("B5:B400")
           Set c = .Find(what:=CDate(Range("Q1")), LookIn:=xlFormulas, lookat:=xlPart)
           If Not c Is Nothing Then
               beginn = c.Row
           Else
               beginn = 5
           End If
       End With
    
       For n = 0 To 4
           Cells(2, 18 + n) = WorksheetFunction.Sum(Range(Cells(beginn, 5 + n), Cells(400, 5 + n)))
       Next n
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus:

    • Drücke Alt + F8, wähle das datum-Makro und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: Datum wird nicht gefunden
    Lösung: Stelle sicher, dass das Datum in Zelle Q1 im richtigen Format eingegeben ist.

  • Fehler: Falsche Summen werden angezeigt
    Lösung: Überprüfe, ob der Tabellenname im VBA-Code korrekt ist (z.B. "Plan-B").

  • Fehler: Gesamte Spalte wird addiert
    Lösung: Stelle sicher, dass der Code den beginn korrekt setzt, bevor die Summen berechnet werden.


Alternative Methoden

Wenn du keine VBA-Lösung verwenden möchtest, kannst du auch Formeln nutzen, um die Werte in den Spalten zu addieren:

  1. Verwende die SUMMENPRODUKT-Funktion:

    =SUMMENPRODUKT(($B$5:$B$400=Q1)*E$5:E$400)

    Diese Formel addiert alle Werte in Spalte E, die dem Datum in Q1 entsprechen. Ersetze E durch die entsprechenden Spalten (F, G, H, I) für die anderen Summen.


Praktische Beispiele

Hier ist ein Beispiel zur Verwendung von VBA, um die Werte in den Spalten E bis I zu addieren und die Summen in die Zellen R2 bis V2 zu kopieren:

  • Angenommen, du hast folgende Werte in den Zeilen 5 bis 400:
    • Spalte E: 1, 2, 3 (ab Zeile 5)
    • Spalte F: 4, 5, 6
    • Spalte G: 7, 8, 9
    • Spalte H: 10, 11, 12
    • Spalte I: 13, 14, 15

Wenn das Datum in Q1 mit einem Datum in Spalte B übereinstimmt, wird die Summe dieser Werte ab der entsprechenden Zeile in R2 bis V2 ausgegeben.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste dein Makro mit verschiedenen Datensätzen, um sicherzustellen, dass es unter verschiedenen Bedingungen korrekt funktioniert.
  • Hinterlege Fehlerbehandlungen im Code, um unerwartete Fehler zu vermeiden, z.B. durch die Verwendung von On Error Resume Next.

FAQ: Häufige Fragen

1. Kann ich auch mehrere Bedingungen hinzufügen?
Ja, du kannst zusätzliche Bedingungen im VBA-Code oder in den Formeln definieren, um die Berechnung anzupassen.

2. Was mache ich, wenn ich die Summe einer ganzen Spalte addieren möchte?
Ändere den Bereich in der Sum-Funktion im VBA-Code oder in der Formel auf die gesamte Spalte (z.B. E:E).

3. Wie kann ich sicherstellen, dass mein Makro nur einmal ausgeführt wird?
Du kannst eine Variable hinzufügen, die überprüft, ob das Makro bereits ausgeführt wurde, und die Ausführung gegebenenfalls abbrechen.

4. Welche Excel-Version wird benötigt?
Das VBA-Skript funktioniert in Excel 2010 und höheren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige