Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1664to1668
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
Inhaltsverzeichnis

Fehler bei leerer ComboBox in Userform

Fehler bei leerer ComboBox in Userform
09.01.2019 19:18:13
Philipp
Hallo,
in einer UserForm, über die verschiedene Druckeinstellungen vorgenommen und die Tabellenblätter ausgewählt werden können, befindet sich u.a. eine ComboBox. In dieser soll eingetragen werden, wie viele Kopien gedruckt werden sollen.
Die UserForm funktioniert solange, bis man vergisst, eine Zahl in der besagten ComboBox einzutragen. Dann wird mir der Laufzeitfehler 13: Typen unverträglich angezeigt.
Habe ohne Erfolg versucht den Fehler abzufangen und eine MsgBox zu starten, die darauf hinweißt, dass man die Anzahl der gewünschten Kopien eintragen muss.
Ich bitte um Hilfe, wie ich folgenden Code verändern muss.
Private Sub CB_Drucken_Click()
'Variable definieren
Dim Blattname As String
Dim Anzahl As Integer
Anzahl = CInt(ComboBoxAnzahl.Value)  'Dies wird mir fürs Debuggen gelb angezeigt
'If Anzahl  "" Then
'MsgBox "Bitte tragen Sie die Anzahl der gewünschten Kopien ein", vbInformation, "Hinweis für: " _
& Application.UserName
'Exit Sub
'End If
'If Anzahl = 0 Then
'MsgBox "Bitte tragen Sie die Anzahl der gewünschten Kopien ein", vbInformation, "Hinweis für: " _
& Application.UserName
'Exit Sub
'End If
'Prüfen welche Tabelle in der ComboBox_Drucken ausgewählt wurde
If ComboBoxBlattwahl.Value = "UB-Frontseite" Then
'Tabellenblatt UB-Frontseite drucken
Blattname = "UB-Frontseite"
ElseIf ComboBoxBlattwahl.Value = "Tagesarbeitsbericht" Then
Blattname = "Tagesarbeitsbericht"
ElseIf ComboBoxBlattwahl.Value = "Besuch_am_Arbeitsplatz" Then
Blattname = "Besuch_am_Arbeitsplatz"
ElseIf ComboBoxBlattwahl.Value = "Arbeitsplatzbesuch" Then
Blattname = "Arbeitsplatzbesuch"
Else
Blattname = "UB-Rückseite"
End If
'UserForm Drucken schließen
Me.Hide
'aktivierts Tabellenbaltt drucken
Sheets(Blattname).PrintOut Copies:=Anzahl
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei leerer ComboBox in Userform
09.01.2019 19:35:42
Werner
Hallo,
so:
If ComboBoxAnzahl  "" Then
Anzahl = CInt(ComboBoxAnzahl.Value)
Else
MsgBox "Wert auswählen"
Exit Sub
End If
Gruß Werner
AW: Fehler bei leerer ComboBox in Userform
09.01.2019 20:25:07
Philipp
Hallo Werner,
vielen Dank für deine Nachricht. Leider war der Fehler nach der Code Anpassung immer noch vorhanden. Nepumuk hatte noch eine weitere Idee und diese führte zum gewünschten Erfolg.
Lieben Gruß Philipp
AW: Fehler bei leerer ComboBox in Userform
09.01.2019 19:36:10
Nepumuk
Hallo Philipp,
versuch es mal so: Anzahl = Val(ComboBoxAnzahl.Value)
Dann prüfst du ob Anzahl 0 ist.
Warum benutzt du eine ComboBox zum eintragen? In einer ComboBox ist etwas zum auswählen drin. Zum Eingeben benutzt man normalerweise eine TextBox.
Gruß
Nepumuk
Anzeige
AW: Fehler bei leerer ComboBox in Userform
09.01.2019 20:21:13
Philipp
Hallo Nepumuk,
für alle die es interesiert, habe den Code durch Nepumuks Hilfe wie folgt zum fehlerfreien laufen gebracht:
Option Explicit
Private Sub CB_Drucken_Click()
'Variable definieren
Dim Blattname As String
Dim Anzahl As Integer
'Anzahl = CInt(ComboBoxAnzahl.Value)
Anzahl = Val(ComboBoxAnzahl.Value)
If ComboBoxAnzahl  "" Then
Anzahl = CInt(ComboBoxAnzahl.Value)
Else
MsgBox "Bitte tragen Sie die Anzahl der gewünschten Kopien ein", vbInformation, "Hinweis für: "  _
& Application.UserName
Exit Sub
End If
'If Anzahl = 0 Then
'MsgBox "Bitte tragen Sie die Anzahl der gewünschten Kopien ein", vbInformation, "Hinweis für: " _
& Application.UserName
'Exit Sub
'End If
'Prüfen welche Tabelle in der ComboBox_Drucken ausgewählt wurde
If ComboBoxBlattwahl.Value = "UB-Frontseite" Then
'Tabellenblatt UB-Frontseite drucken
Blattname = "UB-Frontseite"
ElseIf ComboBoxBlattwahl.Value = "Tagesarbeitsbericht" Then
Blattname = "Tagesarbeitsbericht"
ElseIf ComboBoxBlattwahl.Value = "Besuch_am_Arbeitsplatz" Then
Blattname = "Besuch_am_Arbeitsplatz"
ElseIf ComboBoxBlattwahl.Value = "Arbeitsplatzbesuch" Then
Blattname = "Arbeitsplatzbesuch"
Else
Blattname = "UB-Rückseite"
End If
'UserForm Drucken schließen
Me.Hide
'aktivierts Tabellenbaltt drucken
Sheets(Blattname).PrintOut Copies:=Anzahl
End Sub

Jetzt funktioniert die UserForm fehlerfrei. Vielen herzliche Dank für deine Code Anpassung Nepumuk !
Nun zu deiner Frage, warum ich keine Textbox nutze:
Zuerst hatte ich auch eine TextBox. Um den Fehler abzufangen habe ich verschiedenes ohne Erfolg probiert. U.a. auch die Umstellung auf ComboBox. Ich dachte vielleicht liegt der Fehler mitunter daran, das die Textbox normalerweise für Text gedacht ist und ich die Anzahl der Kopien als Zahl deklariert habe. Ich bin mir sicher, du schüttelst über mein "Unwissen" den Kopft :-).
Habe aber durch folgenden Code:
Private Sub UserForm_Initialize()
'Tabellen in der ComboBox anzeigen
With frm_Drucken.ComboBoxBlattwahl
.AddItem "UB-Frontseite"
.AddItem "UB-Rückseite"
.AddItem "Tagesarbeitsbericht"
.AddItem "Arbeitsplatzbesuch"
.AddItem "Besuch_am_Arbeitsplatz"
End With
ComboBoxAnzahl.Value = 1
ComboBoxBlattwahl.Value = "Über DropDown-Pfeil auswählen"
'Zahlen in der ComboBoy anzeign
With frm_Drucken.ComboBoxAnzahl
Dim i As Integer
For i = 1 To 20
.AddItem i
Next
End With
End Sub

es geschafft, dass über das DropDown die Anzahl der Kopien ausgewählt werden kann.
Beste Gruß
Philipp
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige