Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Berechne Werte zwischen zwei Datumsangaben

Berechne Werte zwischen zwei Datumsangaben
30.06.2018 12:28:40
nick
Hallo Leute,
ich habe eine Userform, in der ein Datum und ein Wert eingegeben werden können.
Diese werden in ein Tabellenblatt übertragen.
Spalte A: Datum (das selbe Datum kann mehr als einmal vorkommen)
Spalte B: Wert
Bsp:
Spalte A:
01.05.2018
01.05.2018
03.05.2018
.
.
.
31.05.2018
Spalte B:
10
4
4
.
.
.
1
Nun zu meinem Problem:
Über die Userform kann eine Datumsgrenze eingegeben werden (z.b. 03.05.2018 txtDatum1 und 15.05.2018 txtDatum2), die mir anschließend die Summe der Werte in Spalte B für die Datumgrenze ausgibt. Die Summe wird in txtAusgabe anzeigt - beim drücken auf cmdBerechnenButton. Meine Versuche mit If-Schleifen und For-Schleifen brachten leider nicht den erwünschten Erfolg :-( . Habt Ihr eine Idee, die mir weiterhilft?
Vielen Dank im Voraus für eure Hilfe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechne Werte zwischen zwei Datumsangaben
30.06.2018 12:40:42
Sepp
Hallo Nick,
lade deine Datei hoch.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Berechne Werte zwischen zwei Datumsangaben
30.06.2018 13:07:01
nick
Option Explicit
Private Sub cmdBeenden_Click()
'Schließt Programm
Unload Me
End Sub

Private Sub cmdImport_Click()
'Leere Zeile ermitteln
Dim last As Long
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Werte in Tabelle in 1. Spalte eintragen
Cells(last, 1).Value = DTPKalender.Value
Cells(last, 2).Value = txtWerte.Value
'Werte Sortieren
Range("A:B").Sort key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
End Sub

Private Sub cmdLöschen_Click()
'Werte löschen
Range("A:A").Value = ""
Range("B:B").Value = ""
End Sub

Private Sub cmdSuchen_Click()
'Zeitraum ermitteln
Dim Datum1 As Date
Dim Datum2 As Date
Datum1 = txtDatum1.Value
Datum2 = txtDatum2.Value
If Range("Datum1") >= Range("A1") And Range("Datum2") 

Private Sub UserForm_Click()
End Sub

Anzeige
AW: Berechne Werte zwischen zwei Datumsangaben
30.06.2018 17:45:20
Sepp
Hallo Nick,
Private Sub cmdSuchen_Click()
  'Zeitraum ermitteln 
  Dim Datum1 As Long
  Dim Datum2 As Long

  If IsDate(txtDatum1) Then Datum1 = CLng(CDate(txtDatum1))
  If IsDate(txtDatum2) Then Datum2 = CLng(CDate(txtDatum2))

  If Datum1 > 0 And Datum2 > 0 Then
    With Sheets("Tabelle2")
      txtSummeAusgeben = Application.SumIfs(.Range("B:B"), .Range("A:A"), ">=" & Datum1, .Range("A:A"), "<=" & Datum2)
    End With
  Else
    txtSummeAusgeben = "Falsche Eingabe!"
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Berechne Werte zwischen zwei Datumsangaben
30.06.2018 18:21:06
nick
Hallo Sepp,
Super!
vielen Dank!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Berechne Werte zwischen zwei Datumsangaben


Schritt-für-Schritt-Anleitung

Um in Excel zu prüfen, ob ein Datum zwischen zwei anderen Datumsangaben liegt und die entsprechenden Werte zu summieren, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Erstelle eine Userform:

    • Füge Textfelder für die Datumsangaben (txtDatum1, txtDatum2) und für die Ausgabe (txtSummeAusgeben) hinzu.
    • Füge einen Button hinzu, um die Berechnung zu starten.
  2. Füge den Code für den Button hinzu:

    • Öffne den VBA-Editor und füge den folgenden Code in das cmdSuchen_Click Ereignis ein:
    Private Sub cmdSuchen_Click()
       Dim Datum1 As Date
       Dim Datum2 As Date
       Datum1 = txtDatum1.Value
       Datum2 = txtDatum2.Value
    
       If Datum1 >= 0 And Datum2 >= 0 Then
           txtSummeAusgeben = Application.SumIfs(Sheets("Tabelle2").Range("B:B"), Sheets("Tabelle2").Range("A:A"), ">=" & Datum1, Sheets("Tabelle2").Range("A:A"), "<=" & Datum2)
       Else
           txtSummeAusgeben = "Falsche Eingabe!"
       End If
    End Sub
  3. Teste die Userform:

    • Starte die Userform und gib zwei Datumsangaben ein. Klicke auf den Berechnen-Button, um die Summe der Werte zwischen diesen beiden Daten zu erhalten.

Häufige Fehler und Lösungen

  • Falsches Datumsformat: Stelle sicher, dass die eingegebenen Daten in einem korrekten Datumsformat vorliegen. Excel prüft, ob das Datum zwischen zwei Daten liegt.

  • Leere Felder: Wenn eines der Textfelder leer ist, kann dies zu einem Fehler führen. Überprüfe, ob beide Felder ausgefüllt sind, bevor Du die Berechnung durchführst.

  • Fehlende Werte in Spalte B: Wenn in der Datentabelle keine Werte vorhanden sind, wird das Ergebnis leer sein. Stelle sicher, dass die Werte in Spalte B vorhanden sind.


Alternative Methoden

  1. SUMIF-Funktion: Du kannst auch die SUMIF-Funktion direkt in eine Zelle eingeben, um die Summe der Werte zu berechnen, wenn das Datum zwischen zwei Daten liegt:

    =SUMIFS(B:B, A:A, ">=" & E1, A:A, "<=" & F1)

    Hierbei stehen E1 und F1 für die Zellen, in denen Du die Datumsgrenzen eingegeben hast.

  2. PivotTable: Eine PivotTable kann ebenfalls helfen, Daten nach Datum zu filtern und die entsprechenden Werte zu summieren, wenn Du eine visuelle Darstellung benötigst.


Praktische Beispiele

Angenommen, Du hast folgende Daten:

A B
01.05.2018 10
03.05.2018 4
15.05.2018 6
31.05.2018 1

Wenn Du die Summe der Werte zwischen dem 03.05.2018 und 15.05.2018 berechnen möchtest, gibst Du diese Daten in die Userform ein und erhältst die Ausgabe 10 (4 + 6).


Tipps für Profis

  • Datenvalidierung: Verwende die Datenvalidierung in Excel, um sicherzustellen, dass nur gültige Datumsangaben eingegeben werden.

  • Fehlerbehandlung: Ergänze den Code mit einer Fehlerbehandlung, um unerwartete Eingaben abzufangen und dem Benutzer hilfreiche Rückmeldungen zu geben.

  • Automatisierung: Du kannst VBA nutzen, um die Berechnung zu automatisieren, sobald neue Daten in die Tabelle eingegeben werden.


FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Datum zwischen zwei Daten liegt? Um zu prüfen, ob ein Datum zwischen zwei anderen Daten liegt, kannst Du die IF-Bedingung in VBA verwenden oder die SUMIFS-Funktion in Excel nutzen.

2. Was ist, wenn ich mehrere Datumsangaben habe? Du kannst die SUMIFS-Funktion nutzen, um mehrere Kriterien zu berücksichtigen, indem Du zusätzliche Bedingungen hinzufügst.

3. Ist dieser Code mit allen Excel-Versionen kompatibel? Der bereitgestellte Code ist für Excel 2016 und später getestet. Bei älteren Versionen kann es zu Abweichungen kommen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige