Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 17:24:04
Celina
Hey, ich erkläre euch kurz mein Vorhaben.
Ich habe eine Excel Mappe mit 2 Tabellen.
Tabelle 1 :
Enthält 3 Spalten: (Datum,Betrag,Kategorie)
Durch eine Schaltfläche kann man Eingaben machen.
Durch eine zweite Schaltfläche habe ich eine Userform in der man eine Datumszeitspanne eingibt und eine Kategorie. Dann soll eine Messagebox erscheinen, die einem sagt - wie teuer diese Kategorie (zb.Handy) in diesem Zeitraum war.
Man kann immer nur eine Kategorie auswählen.
Jetzt fängts an zu harken.
Ich weiß einfach nicht wie ich die Schleife schreibe, die 1. nur diesen Zeitraum nimmt und 2. Nur die Kategorie und 3. dann die Kosten von den Tagen und der Kategorie als Summe ausspuckt.
Ich habe erst ca. 15 Stunden Excel - VBA Erfahrung also seid gnädig. :D
Nur zur Info:
Tabelle 2 enthält eine Spalte mit den Kategorien die man erweitern kann und die Automatisch in die Userform übertragen werden.
Vielen Dank für die Hilfe.

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 17:43:17
Sepp
Hallo Celina,
mit 15 Std. Excel/VBA frage ich mich, warum du eine VBA-Lösung suchst. Das lässt sich doch ganz einfach in Excel lösen. Entweder mit SUMMENPRODUKT() oder mit SUMMEWENNS().
Gruß Sepp

AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 17:48:43
Celina
Hey,
naja weil es über eine Userform läuft, die Daten bzw. Beiträge stetig erneuert werden und es durch Auswahl von Datum und Kategorie über ein Mausklick in der Userform ausgerechnet werden soll.

AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 18:43:31
Sepp
Hallo Celina,
vom Prinzip her so.
Sub celina()
Dim DatumVon As Long, DatumBis As Long, Kategorie As Variant

'Hier natürlich deine Werte aus dem UF
DatumVon = CDate("15.03.2015")
DatumBis = CDate("30.04.2015")
Kategorie = "Kategorie1"

With Sheets("Tabelle1") 'Tabellenname - Anpassen
  MsgBox Application.SumIfs(.Range("B2:B1000"), .Range("A2:A1000"), ">=" & DatumVon, _
    .Range("A2:A1000"), "<=" & DatumBis, .Range("C2:C1000"), Kategorie)
End With

End Sub



Gruß Sepp

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 20:02:51
Celina
Hey hat leider nicht funktioniert.
"Kategorie as variant" - hat er nicht akzeptiert und er debugged rum bei der Messagebox.
Ich kopier dir mal meinen Code.
Private Sub cmdBerechnen_Click()
Dim datumvon As Long
Dim datumbis As Long
Kategorie As Variant
letztezeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
datumab = txtdatumab
datumbis = txtdatumbis
Kategorie = ComboBox1
With Sheets("tabelle1")
MsgBox Application.sumlfs(.Range("B2:B" & letztezeile), .Range("A2:A" & letztezeile), ">=" & _
datumab, .Range("A2:A" & letztezeile), "

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 20:15:10
Sepp
Hallo Celina,
du hast Dim vor Kategorie vergessen, "letztzeile" kannst du dir sparen und einfach die ganze Spalte angeben. Und das CDate() hab ich auch nicht nur zum Spass hingeschrieben ;-))
Private Sub cmdBerechnen_Click()
Dim datumvon As Long
Dim datumbis As Long
Dim Kategorie As Variant

datumab = CDate(txtdatumab)
datumbis = CDate(txtdatumbis)
Kategorie = ComboBox1.Text

With Sheets("tabelle1")
  MsgBox Application.sumlfs(.Range("B:B"), .Range("A:A"), ">=" & _
    datumab, .Range("A:A"), "<=" & datumbis, .Range("C:C"), Kategorie)
End With

End Sub


Gruß Sepp

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
25.08.2015 22:18:10
Matthias
Hallo Celina, hallo Sepp,
"sumlfs": Ich bin mir sicher so wie das in deinem Code aussieht ist das ein kleines L in der Mitten. Die Funktion kommt aber von SummeWenns(), zu englisch SumIfs (großes i). Daher meckert er auch bei deiner MsgBox.
lg Matthias

AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 16:02:46
Celina
Hallo,
jetzt zeigt er in der MsgBox aber immer 0 an.

AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 17:47:04
Celina
Hey,
also irgendwie passt das alles nicht. Er akzeptiert auch dieses CDate nicht.
Hier nochmal mein Code:
Private Sub cmdBerechnen_Click()
Dim datumab As Long
Dim datumbis As Long
Dim Kategorie As Variant
letztezeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
datumab = CDate(txtdatumab)
datumbis = CDate(txtdatumbis)
Kategorie = ComboBox1
With Sheets("tabelle1")
MsgBox Application.SumIfs(.Range("B:B"), .Range("A:A"), ">=" & datumab, .Range("A:A"), "

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 20:40:18
Sepp
Hallo Celina,
.Text ist eine Eigenschaft der ComboBox!
Lade doch einfach deine Datei hoch, niemand kann wissen, was du in dein UF eingibst und welche Daten in der Tabelle stehen!
Gruß Sepp

AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 20:56:01
Celina
Ok hier, Danke

Die Datei https://www.herber.de/bbs/user/99844.xlsm wurde aus Datenschutzgründen gelöscht


AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 21:41:37
Sepp
Hallo Celina,
VBA-Projekte in den nicht "Option Explicit" verwendet wird, schau ich normalerweise gar nicht an!
Gerade für Anfänger ist diese Option sehr wichtig. Schau dir die Online-Hilfe dazu an.
Deine Variablen sind zum Teil gar nicht und zum anderen falsch deklariert.
Einmal heißt es "datumab" du verwendest aber "datumvon", ein aderes mal deklarierst du "lnguntersteZeile" verwendest im Code aber "letztezeile" und das kann nun mal nicht funktionieren.
Ich hab mal ein wenig aufgeräumt.
https://www.herber.de/bbs/user/99845.xlsm
Gruß Sepp

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 21:56:45
Celina
Hey,
ja wie gesagt. Tut mir leid.
Immerhin zeigt er jetzt schonmal eine Zahl an, aber die Berechnung stimmt noch nicht.
Wenn ich jetzt bei Ausgaben den Gesamten Zeitraum und als Kategorie "Miete" oder "Computer" nehme kommt ja nicht die Summe raus.
Tut mir wirklich leid. =/

AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 21:58:47
Celina
Ok Funtzt doch. :D
Tut mir leid XD
DANKE DANKE DANKE

Entschuldige dich nicht fortlaufend!
26.08.2015 22:20:43
Sepp
Hallo Celina,
du brauchst dich nicht andauernd entschuldigen, ist doch kein Problem, du wirst das schon noch alles lernen.
Gruß Sepp

Anzeige
AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 22:19:19
Sepp
Hallo Celina,
sortiere die Tabelle nach dem Datum, dann stimmt auch die Summe.
Und nimm diesen Code für den optionButton.

Private Sub OpbtnGesamterZeitraum_Click()

With Sheets("Tabelle1")
  Ausgaben.txtdatumab = CDate(Application.Min(.Range("A:A")))
  Ausgaben.txtdatumbis = CDate(Application.Max(.Range("A:A")))
End With

End Sub


Gruß Sepp

Anzeige
geht zum Augenarzt! o.T.
26.08.2015 21:42:24
Sepp
Gruß Sepp

AW: VBA Anfänger Schleife mit 2 Bedingungen
26.08.2015 11:30:23
Celina
Hey, es funktioniert einfach nicht.. :(
Kategorie ist kein txt sondern nur ne Combobox namens Combobox1 (da man die Kategorie ja einstellen kann Miete,Handy etc)
Er bugged trotzdem noch bei der Messagebox rum
Private Sub cmdBerechnen_Click()
Dim datumvon As Long
Dim datumbis As Long
Dim Kategorie As Variant
letztezeile = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row
datumab = CDate(txtdatumab)
datumbis = CDate(txtdatumbis)
Kategorie = ComboBox1
With Sheets("tabelle1")
MsgBox Application.sumlfs(.Range("B:B"), .Range("A:A"), ">=" & datumab, .Range("A:A"), "

Anzeige

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige