Moin,
Ich habe Probleme bei der Deklaration von Variablen
Ich habe ein Userform erstellt mir der ich eine Tabelle füllen möchte.
Wobei ich Textboxen und ComboBoxen benutze.
Die Combobox sorgt für eine Ausgabe die an Bedingungen geknüpft ist.
Ich habe hier einmal meinen Code
Mein Problem befindet sich in der Zeile
Quick = Worksheets("Makrodaten").Range("C7")
Hier zeigt er mir immer den Fehler "13" an.
Ich wollte diesmal mit Variablen arbeiten da mich mehrer Forenuser darauf aufmerksamer gemacht haben, dass dies so saubrer wäre.
Leider geht das nicht
Alle anderen Variablen kann ich normal verwenden
Wenn ich dann weiter unten
If ComboBox1.Value = Quick Then
Quick durch Worksheets("Makrodaten").Range("C7") ersetzte macht er genau das was ich will.
Alle anderen Variablen funktionieren komischerweise. Der Teufel steckt wohl im Detail.
Anbei befindet sich eine Testdatei zu der Problematik.
Ich möchte mich aufjedenfall auf die Zellen im Zweiten Blatt referenzieren.
Da ich diese Tabelle weitergebe und es sein kann das mein Kollege die Zeiträume ein wenig verändern muss.
Dies kann er dann einfach durch das ändern der Zellen machen ohne den Code zu verändern.
Mit freundlichen Grüßen Edgar Kraft
Ich habe Probleme bei der Deklaration von Variablen
Ich habe ein Userform erstellt mir der ich eine Tabelle füllen möchte.
Wobei ich Textboxen und ComboBoxen benutze.
Die Combobox sorgt für eine Ausgabe die an Bedingungen geknüpft ist.
Ich habe hier einmal meinen Code
Visual Basic-Quellcode
- Private Sub Erstellen_Click()
- ' Variablen Deklaration
- Dim Ausgangsdatum As Date
- Ausgangdsdatum = TextBox2.Value
- Dim ReportInt As Integer
- ReportInt = Worksheets("Makrodaten").Range("D5")
- 'Quickcheck
- Dim Quick As Long
- Quick = Worksheets("Makrodaten").Range("C7")
- Dim QuickMo As Integer
- QuickMo = Worksheets("Makrodaten").Range("D7")
- Dim QuickTa As Integer
- QuickTa = Worksheets("Makrodaten").Range("H7")
- Dim QuickNews As Integer
- QuickNews = Worksheets("Makrodaten").Range("F7")
- 'Hinzufügen von Kundenname, Stardatum, Kursart, Incentive Anzahl
- Dim neuezeile As Long
- neuezeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
- Cells(neuezeile, 1) = TextBox1.Value
- Cells(neuezeile, 5) = TextBox2.Value
- Cells(neuezeile, 3) = ComboBox1.Value
- Cells(neuezeile, 4) = ComboBox2.Value
- ' Folge Auswahl Quickcheck
- If ComboBox1.Value = Quick Then
- Cells(neuezeile, 6) = DateAdd("m", ReportInt, Ausgangdsdatum)
- End If
- Unload UserForm1
- End Sub
- Private Sub TextBox2_AfterUpdate()
- TextBox2 = Format(TextBox2, "DD.MM.YYYY")
- End Sub
- Private Sub TextBox2_Change()
- End Sub
- Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
- If Not IsDate(TextBox2) Then
- TextBox2 = ""
- Cancel = True
- End If
- End Sub
- Private Sub UserForm_Activate()
- End Sub
- Private Sub UserForm_Click()
- End Sub
- Private Sub UserForm_Initialize()
- letzte = Worksheets("Makrodaten").Range("C" & Rows.Count).End(xlUp).Row
- For i = 1 To letzte
- ComboBox1.AddItem Sheets("Makrodaten").Cells(i + 6, 3)
- Next i
- With ComboBox2
- .AddItem "1"
- .AddItem "2"
- .AddItem "3"
- .AddItem "4"
- .AddItem "5"
- .AddItem "6"
- .AddItem "7"
- .AddItem "8"
- End With
- End Sub
Mein Problem befindet sich in der Zeile
Quick = Worksheets("Makrodaten").Range("C7")
Hier zeigt er mir immer den Fehler "13" an.
Ich wollte diesmal mit Variablen arbeiten da mich mehrer Forenuser darauf aufmerksamer gemacht haben, dass dies so saubrer wäre.
Leider geht das nicht
Alle anderen Variablen kann ich normal verwenden
Wenn ich dann weiter unten
If ComboBox1.Value = Quick Then
Quick durch Worksheets("Makrodaten").Range("C7") ersetzte macht er genau das was ich will.
Alle anderen Variablen funktionieren komischerweise. Der Teufel steckt wohl im Detail.
Anbei befindet sich eine Testdatei zu der Problematik.
Ich möchte mich aufjedenfall auf die Zellen im Zweiten Blatt referenzieren.
Da ich diese Tabelle weitergebe und es sein kann das mein Kollege die Zeiträume ein wenig verändern muss.
Dies kann er dann einfach durch das ändern der Zellen machen ohne den Code zu verändern.
Mit freundlichen Grüßen Edgar Kraft