Frage von StillGamingLP, 36

Was habe ich an diesem Code falsch gemacht?

Hallo Zusammen!

Ich habe in VBA einen Code programmiert. Es soll möglich sein in zwei TextBoxen (TextBox1, und TextBox2) ein Datum reinzuschreiben. Diese werden dann in eine Pivot-Tabelle gelesen und anschliessend als Grafik angezeigt. Die Grafik beeinhalted dann eine Kurve der Zeitspanne zwischen diesen zwei Daten. Ich habe die Grafik dann im Ordner Temp als GIF abgespeichert und anschliessend in Image1 reingeladen. Das mit der Grafik funktioniert bestens. Aber das mit dem Datum in die Pivot-Tabelle einlesen funktioniert noch nicht. Ich weiss aber leider nicht was mein Fehler ist. Kann mir jemand helfen?

Hier ist der Code dafür:

Private Sub CommandButton1_Click()
    
Dim erstesDatum As String
Dim zweitesDatum As String
    
Sheets("S3- Strom Grafik kWh pro Tag").Activate
    
If IsDate("TextBox1.text") And IsDate("TextBox2.text") = False Then
MsgBox ("Bitte geben Sie ein gültiges Datum ein!")
Else

erstesDatum = TextBox1.Text
zweitesDatum = TextBox2.Text
        
ActiveSheet.PivotTables("PivotTabel3").PivotFilters.Add FilterType:=xlDateBetween, Value1:=CDate(erstesDatum), Value2:=CDate(zweitesDatum)
    
File_Name = "C:\temp\Chart2.gif"
Sheets("S3- Strom Grafik kWh pro Tag").ChartObjects(1).Chart.Export Filename:=File_Name, _
FilterName:="GIF", Interactive:=False
StromDatumGrafik.Image1.Picture = LoadPicture("C:\temp\Chart2.gif")

End If

End Sub

Danke für eure Bemühungen! Euer StillGamingLP

Antwort
von Suboptimierer, 21
If IsDate("TextBox1.text") And IsDate("TextBox2.text") = False Then

Der Sinn dieser Zeile erschließt sich mir absolut nicht. IMHO hast du den falschen boolschen Operator verwandt, beides müsste auf False abgeprüft werden und die Anführungszeichen gehören da nicht hin.

If IsDate(TextBox1.text)=False Or IsDate(TextBox2.text)=False Then
Kommentar von StillGamingLP ,

Hallo Suboptimierer

Danke für deinen Rat.

Diese Zeile funktioniert aber immernoch nicht!

Sheets("S3- Strom Grafik kWh pro Tag").PivotTable("PivotTable3").PivotFilters.Add Type:=xlDateBetween, Value1:=erstesDatum, Value2:=zweitesDatum
Kommentar von Suboptimierer ,
  • Was ist die Fehlermeldung?
  • Warum hast du das CDate entfernt?
  • Du solltest vor dem Neusetzen eines Filters alle bestehenden entfernen.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten