Laufzeitfehler 91

Hallo,
habe einen Laufzeitfehler bei dem ich nicht mehr weiter weiss.
Wenn ich in der ComboBox die 'Möglichkeit 1 „LG frei Schüler“ aufrufe, werden die Daten richtig in die Tabelle27 übertragen.
Versuche ich das mit der 'Möglichkeit 2 „LG frei Jugend“ die in die Tabelle28 sollen, werden keine Daten übertragen und es gibt den Laufzeitfehler:

Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festgelegt.

Gelb hinterlegt:
lngZeile = wksKlasse.Cells(.Rows.Count, 3).End(xlUp).Row + 1

Alle Daten müssen auch in die Tabelle „Mannschaften“ übertragen werden.
Ich finde den Fehler leider nicht. Beide Tabellen 27+28 sind vom Aufbau und der Formatierung gleich.
Hier der komplette Code in dem UserForm.
Kann mir jemand weiterhelfen?
Gruß Skaletti!
Private Sub UserForm_Initialize()

ComboBox1.List = Tabelle1.Range(„D1:smiley:21“).Value
ComboBox1.ListIndex = 0

End Sub

Private Sub CommandButton1_Click() 'Daten in Tabelle"Mannschaften"
Call Bedingtes_übertragen
Dim erste_freie_Zeile As Integer

erste_freie_Zeile = Sheets(„Mannschaften“).Range(„A65536“).End(xlUp).Offset(1, 0).Row

Sheets(„Mannschaften“).Cells(erste_freie_Zeile, 2) = (TextBox1.Text)

Sheets(„Mannschaften“).Cells(erste_freie_Zeile, 3) = (TextBox3.Text)

Sheets(„Mannschaften“).Cells(erste_freie_Zeile, 4) = (TextBox5.Text)

Sheets(„Mannschaften“).Cells(erste_freie_Zeile, 5) = (TextBox7.Text)

Sheets(„Mannschaften“).Cells(erste_freie_Zeile, 6) = ComboBox1.Text

Unload Me
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Starter_holen (2)
End Sub

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Starter_holen (4)
End Sub

Private Sub TextBox6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Starter_holen (6)
End Sub

Sub Starter_holen(intNr As Integer)

Dim WKS As Worksheet, i As Long
Set WKS = ThisWorkbook.Worksheets(„Anmeldung“) ’ anpassen

With UserForm2 ’ anpassen

.Controls(„TextBox“ & intNr + 1) = „“

For i = 2 To WKS.Cells(WKS.Rows.Count, 1).End(xlUp).Row

If WKS.Cells(i, 1).Text = .Controls(„TextBox“ & intNr) Then
.Controls(„TextBox“ & intNr + 1) = WKS.Cells(i, 3).Text
Exit Sub
End If

Next

MsgBox „Starter Nummer " & .Controls(„TextBox“ & intNr) & _
" wurde nicht gefunden!“, vbOKOnly + vbExclamation, „Fehler“

End With

End Sub

Sub Bedingtes_übertragen()

Dim wksKlasse As Worksheet

Select Case Me.ComboBox1.Value 'Wert der verglichen wird

Case „LG frei Schüler“ 'Möglichkeit 1
Set wksKlasse = Tabelle27

Case „LG frei Jugend“ 'Möglichkeit 2
Set wksKlasse = Tabelle28

End Select

i = 3
Dim lngZeile As Long

If Len(Me.TextBox1) * Len(Me.TextBox2) * Len(Me.TextBox3) * Len(Me.TextBox4) * Len(Me.TextBox5) * Len(Me.TextBox6) * Len(Me.TextBox7) > 0 Then
With wksKlasse
lngZeile = wksKlasse.Cells(.Rows.Count, 3).End(xlUp).Row + 1
wksKlasse.Cells(lngZeile, 3).Value = Me.TextBox1
wksKlasse.Cells(lngZeile, 4).Value = Me.TextBox2
wksKlasse.Cells(lngZeile, 5).Value = Me.TextBox3
wksKlasse.Cells(lngZeile, 7).Value = Me.TextBox4
wksKlasse.Cells(lngZeile, 8).Value = Me.TextBox5
wksKlasse.Cells(lngZeile, 10).Value = Me.TextBox6
wksKlasse.Cells(lngZeile, 11).Value = Me.TextBox7

i = i + 1
End With

Else
MsgBox „Starterdaten fehlen!“
End If

Unload Me

End Sub

habe einen Laufzeitfehler bei dem ich nicht mehr weiter weiss.
Wenn ich in der ComboBox die 'Möglichkeit 1 „LG frei Schüler“
aufrufe, werden die Daten richtig in die Tabelle27 übertragen.
Versuche ich das mit der 'Möglichkeit 2 „LG frei Jugend“ die
in die Tabelle28 sollen, werden keine Daten übertragen und es
gibt den Laufzeitfehler:

Hallo Skaletti,

ungetestet, ersetze mal

Select Case Me.ComboBox1.Value 'Wert der verglichen wird
Case „LG frei Schüler“ 'Möglichkeit 1
Set wksKlasse = Tabelle27
Case „LG frei Jugend“ 'Möglichkeit 2
Set wksKlasse = Tabelle28
End Select

durch

Select Case Me.ComboBox1.Value 'Wert der verglichen wird
 Case "LG frei Schüler" 'Möglichkeit 1
 Set wksKlasse = Tabelle27
 Case "LG frei Jugend" 'Möglichkeit 2
 Set wksKlasse = Tabelle28
 Case Else
 MsgBox "was falsch"
End Select

Gruß
Reinhard

Hallo Reinhard,
vielen Dank für deine schnelle Antwort.
MsgBox sagt „Was falsch“
Habe mal die Möglichkeit1 rausgenommen, dann geht die Nöglichkeit2
auch nicht. Gleicher Laufzeitfehler. Auch andere klassen in eine
nicht formatierte Tabelle funzt nicht.Es kommen ja noch 14 Klassen dazu.
Gruß Skaletti1

Hallo Skaletti,

MsgBox sagt „Was falsch“
Habe mal die Möglichkeit1 rausgenommen, dann geht die
Nöglichkeit2
auch nicht. Gleicher Laufzeitfehler.

dem Anschein nach wird dies nie erfüllt:
Case „LG frei Jugend“

Dies gilt es zu überprüfen warum das so ist.

Gruß
Reinhard

Hallo Skaletti1,

MsgBox sagt „Was falsch“
Habe mal die Möglichkeit1 rausgenommen, dann geht die
Nöglichkeit2
auch nicht. Gleicher Laufzeitfehler. Auch andere klassen in
eine
nicht formatierte Tabelle funzt nicht.Es kommen ja noch 14
Klassen dazu.

Du wirst da einen Typfehler im Text haben.
Schon ein Zusätzliches Leerzeichen am Ende macht einen Unterschied.

AM schnellsten findet man so etwas, wenn man den Debugger anwirft und den kritischen Code mal Zeilenweise abarbeitet. Dabei kannst du dir auch den Inhalt von Variablen anzeigen lassen.

MfG Peter(TOO)

1 Like

Hallo Reinhard,
Ganz simpler Fehler!
Alle Klassen fingen mit der Bezeichnung „LG“ an.
Die Bezeichnung LG an den Schluß gesetzt, jetzt funzt es.
Danke für deine Hilfe.
Kleiner Fehler, große Ursache.
Man kommt einfach nicht sofort drauf.
Habe auch sofort wieder eine Frage:
Wenn ich eine Mannschaftsnummer in eine TextBox eingebe,
kann die beim nächsten Aufruf der UserForm noch vorhanden
sein um dann die nächste Mannschaftsnummer zu um 1 erhöht
zu vergeben?
Gruß Skaletti!

Hallo Peter,
habe leider übersehen das du dazwischen warst.
Danke für deine Hilfe.
Man sollte immer genau lesen.

Gruß Skaletti!

Wenn ich eine Mannschaftsnummer in eine TextBox eingebe,
kann die beim nächsten Aufruf der UserForm noch vorhanden
sein um dann die nächste Mannschaftsnummer zu um 1 erhöht
zu vergeben?

Hallo Skaletti,

die UF und auch die TextBox haben die Eigenschaft „Tag“, da könntest du die Zahl zumindest als String reinschreiben, erhöhen usw.
Dies geschieht dann im Initialize und Exit Ereignis der UF.

Sollten die „Tag“-Einträge flüchtig sein, weiß das grad nicht, nimm halt eine BuildInDocumentProperty.

Oder, einfacher, schreib die Zahl in eine Zelle.

Gruß
Reinhard

Hallo Reinhard,
Vielen Dank.
Ich geh den einfachen Weg: Die Zelle.

Gruß Skaletti!