Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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 Userform Laufzeitfehler "9"
31.03.2020 17:31:06
Micha
Hallo!
Ich habe plötzlich einen Laufzeitfehler "9" nach Eingabe einer Zahl. Dieser tritt aber nicht bei jeder Zahl auf. Habe bereits alle Formatierungen durchgeschaut.
Habe eine Userform, wo ich eine nur Vorgangsnummer eintrage über:

Private Sub OK_Click()
Dim X As Integer
Z = ActiveWorkbook.Sheets(1).UsedRange.Rows.Count
X = Vorgangsnummer
temp = 0
For i = 2 To Z
If ActiveWorkbook.Sheets(1).Cells(i, 1) = X Then
temp = 1
Exit For
End If
Next
If temp = 1 Then
Unload Me
zeile = i
 Userform1.Show
Else
MsgBox "Vorgang nicht gefunden!", vbExclamation
Vorgangsnummer = ""
End If
End Sub

Die Vorgangsnummer wird gesucht und an Userform1 übergeben, wo weitere Daten aus der Tabelle drinstehen. Auf einmal habe ich bei einigen Vorgangsnummern diesen Laufzeitfehler welcher bei Userform1.Show (fett markiert) angezeigt wird bzw. die Übergabe stoppt, jedoch nicht bei allen. Habe bereits die Zeilen aus der Tabelle kontrolliert und wie gesagt auch alle gleich formatiert. Keine Änderung! Einige lassen sich aufrufen und in Userform1 einlesen, bei manchen erscheint ein dieser Laufzeitfehler.
Wo kann der Fehler liegen?
Viele Grüße
Micha

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 17:33:26
Hajo_Zi
Hallo Micha,
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Das ist nur meine Meinung zu dem Thema.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 17:42:10
Nepumuk
Hallo Micha,
wähle im VBA-Editor - Menüleiste - Extras - Optionen - Allgemein die Option "In Klassenmodul" (Diese Option kannst du beibehalten). Dann versuch den Fehler nochmal auszulösen. Es wird dir die fehlerauslösende Zeile beim Debuggen angezeigt. Eventuell hilft dir das schon weiter. Ansonsten den entsprechenden Code posten.
Gruß
Nepumuk
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 17:54:17
Micha
Hallo Nepumuk,
danke für den Hinweis. Jetzt zeigt er mir zwar den Fehlergrund in der Userform1 an, jedoch habe ich in dieser Spalte einige Vorgangsdaten die keine Inhalte haben und sich trotzdem in der Userform einlesen lassen. Manche aber nicht.
Dim a
a = Split(ActiveWorkbook.Sheets(1).Cells(zeile, 6), " ")
'Splittindex faengt bei 0 an
'mit Trim 1. Leerzeichen loeschen
TextBox1 = Trim(a(0))
TextBox2 = Trim(a(1))
TextBox3 = Trim(a(2))
Bin jetzt noch nicht weiter. Hast du eine Lösung?
Die Datei kann ich aus Datenschutzgründen nicht hochladen.
Viele Grüße
Micha
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 19:17:29
Nepumuk
Hallo Micha,
so kannst du nach der Split-Funktion ob sich Daten im Array befinden:
Dim a
a = Split(", , . ", "")
Select Case UBound(a)
    Case -1
        'keine Daten
    Case 0
        TextBox1.Text = Trim$(a(0))
    Case 1
        TextBox1.Text = Trim$(a(0))
        TextBox2.Text = Trim$(a(1))
    Case 2
        TextBox1.Text = Trim$(a(0))
        TextBox2.Text = Trim$(a(1))
        TextBox3.Text = Trim$(a(2))
End Select

Gruß
Nepumuk
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 21:19:07
Micha
Hallo Nepumuk,
einfach genial! Es funktioniert perfekt, ansonsten hätte ich immer in den Leerzeilen beim manuellen löschen zwei Leerzeichen setzen müssten.
Vielen herzlichen Dank, viele Grüße und gesund bleiben.
Micha
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 17:51:19
Luschi
Hallo Micha,
wenn 'Vorgangsnummer' der Name der TextBox ist, indem Du den Wert eintippst, dann schreibe:
X = CInt(Me.Vorgangsnummer.Value)
denn Du hast ja 'X' als Integer definiert und in TextBoxen stehen nun mal TEXT-Werte, die in eine Zahl umgewandelt werden müssen.
Den Code für die Übergabe an Userform1 kennen wir nicht, aber Du kannst ja mit F8-Taste schrittweise weiter fortfahren und so feststellen, wo es tatsächlich klemmt.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 17:58:51
Micha
Hallo Luschi,
danke für den Hinweis, jedoch immer noch der gleiche Fehler. Habe jetzt durch einen anderen Hinweis in den Extras auf Klassenmodul gewechselt. Jetzt zeigt er mir zwar den Fehlergrund (fett) in der Userform1 an, jedoch habe ich in dieser Spalte einige Vorgangsdaten die keine Inhalte haben und sich trotzdem in der Userform einlesen lassen. Manche aber nicht.
Dim a
a = Split(ActiveWorkbook.Sheets(1).Cells(zeile, 6), " ")
'Splittindex faengt bei 0 an
'mit Trim 1. Leerzeichen loeschen
TextBox1 = Trim(a(0))
TextBox2 = Trim(a(1))
TextBox3 = Trim(a(2))
Bin jetzt noch nicht weiter. Hast du eine Lösung?
Die Datei kann ich aus Datenschutzgründen nicht hochladen.
Viele Grüße
Micha
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 18:58:03
Luschi
Hallo Micha,
wenn der Inhalt von ActiveWorkbook.Sheets(1).Cells(zeile, 6) keine (richtigen) Leerzeichen enthält, dann ist die Variable 'a' kein Array und a(0), a(1) usw. existieren nicht.
Überprüfen kann man das im Überwachungsfenster:
im 1. Fall gibt es keine Leerzeichen in der Zelle:
Userbild
im 2. Fall gibt es Leerzeichen in der Zelle:
Userbild
Gruß von Luschi
aus klein-Paris
Anzeige
AW: VBA Userform Laufzeitfehler "9"
31.03.2020 19:16:14
Micha
Hallo Luschi,
herzlichen Dank. Das hat mir geholfen.
Ich hatte die Userform nachträglich umgebaut und wenn bei der Textbox1 keine Eintrag erfolgt, setzt die Funktion automatisch zwei Leerzeichen.
Sheets(1).Cells(zeile, 6) = TextBox1 & " " & TextBox2 & " " & TextBox3
Vorher war in 17 Zeilen dadurch kein Leerzeichen gesetzt. Dies habe ich nun manuell gemacht und es funktioniert nun wieder. Danke für die ausführliche Erklärung.
Viele herzliche Grüße und gesund bleiben!
Micha

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige