Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
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

Laufzeitfehler 424

Laufzeitfehler 424
29.12.2019 12:01:48
Peer
Hallo.
Ich möchte gern beim Öffnen der UF das Textfeld "txt_BeginnOrt" auslesen und wenn Wert dem Wert "HeimatOrt" aus Tabelle "Parameter" Zeile 18 Spalten 3 bis 5 gleich ist, der Radiobutton "Heimatort" aktiv ist. Analog verhält es sich bei "ETS" und Parameter! Zeile 21 Spalten 3 bis 5.
Dabei habe ich einen kleinen Auszug aus dem Code, den ich dafür verwende. Aber ich bekomme den Laufzeitfehler 424 und kann den Fehler nicht finden.
Ist die Vorgehensweise überhaupt richtig?
Private Sub UserForm_Initialize()
Dim zeile As Long
Dim Repeatings As Integer
Dim N As Integer
Dim letzte As Range
Dim I As Long
Dim wks As Worksheet
Dim HeimatOrt As Range
Dim ETS As Range
Set wks = Worksheets("Parameter")
Set HeimatOrt = wks.Cells(18, 3) & " " & wks.Cells(18, 4) & ", " & wks.Cells(18, 5)
Set ETS = wks.Cells(21, 3) & " " & wks.Cells(21, 4) & ", " & wks.Cells(21, 5)
zeile = ActiveCell.Row
If txt_BeginnOrt.Value = HeimatOrt.Value Then    'Worksheets("Parameter").Cells(18, 4) Then
opt_HeimatOrt.Value = True
opt_AndererOrt.Value = False
opt_ETS.Value = False
txt_BeginnOrt = Cells(zeile, 29)
ElseIf txt_BeginnOrt.Value = ETS.Value Then      'Worksheets("Parameter").Cells(21, 4) Then
opt_AndererOrt.Value = False
opt_HeimatOrt.Value = False
opt_ETS.Value = True
txt_BeginnOrt = Cells(zeile, 29)
End If
End Sub
Ich kann, wenn benötigt, auch die Datei schicken, die zwar inzwischen zu groß ist, ich sie aber dann stark reduziert hochlade.
LG
Peer

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 424
29.12.2019 12:52:02
Hajo_Zi
Hallo Perr,
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: Laufzeitfehler 424
29.12.2019 13:30:41
Peer
Hallo Hajo
Ich dachte, man kann auch aus dem Code meinen Fehler heraussehen.
Also lade ich die Datei hoch.
https://www.herber.de/bbs/user/134029.xlsm
Vielen Dank für die Hilfe.
LG
Peer
AW: Laufzeitfehler 424
29.12.2019 13:43:18
Hajo_Zi
Set HeimatOrt = wks.Range(wks.Cells(18, 3), wks.Cells(18, 5))
zweite Zeile anlalog.
Gruß Hajo
AW: Laufzeitfehler 424
29.12.2019 13:57:29
Peer
Hallo Hajo.
Danke.
Das hatte ich auch erst gedacht, aber mein Gedanke war ja, das die drei Werte mit Leerzeichen und Komata eingetragen werden sollten.
Wie kann ich jetzt beim Laden der UF die TextBox "txt_BeginnOrt" mit diesen Wert vergleichen und dementsprechenden Radiobutton laden?
Mit
    If txt_BeginnOrt.Text = HeimatOrt.Text Then
opt_HeimatOrt.Value = True
opt_AndererOrt.Value = False
opt_ETS.Value = False
ElseIf txt_BeginnOrt.Text = ETS.Text Then
opt_AndererOrt.Value = False
opt_HeimatOrt.Value = False
opt_ETS.Value = True
End If

funktioniert es nicht.
LG
Peer
Anzeige
AW: Laufzeitfehler 424
29.12.2019 14:23:23
Nepumuk
Hallo Peer,
teste mal:
Private Sub UserForm_Initialize()
    
    Dim zeile As Long
    Dim Repeatings As Long
    Dim N As Long
    Dim letzte As Range
    Dim I As Long
    Dim HeimatOrt As Range
    Dim ETS As Range
    
    With Worksheets("Parameter")
        Set HeimatOrt = Union(.Cells(18, 3), .Cells(18, 4), .Cells(18, 5))
        Set ETS = Union(.Cells(21, 3), .Cells(21, 4), .Cells(21, 5))
    End With
    
    zeile = ActiveCell.Row
    
    With Application
        
        If InStr(1, txt_BeginnOrt.Text, Join(.Transpose(.Transpose(HeimatOrt.Value)))) > 0 Then
            
            opt_HeimatOrt.Value = True
            opt_AndererOrt.Value = False
            opt_ETS.Value = False
            txt_BeginnOrt = Cells(zeile, 29).Value
            
        ElseIf InStr(1, txt_BeginnOrt.Text, Join(.Transpose(.Transpose(ETS.Value)))) > 0 Then
            
            opt_AndererOrt.Value = False
            opt_HeimatOrt.Value = False
            opt_ETS.Value = True
            txt_BeginnOrt = Cells(zeile, 29).Value
            
        End If
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 424
29.12.2019 14:42:44
Peer
Hallo Nepumuk.
Danke für deine Hilfe und sie ist zumindest ohne Fehlermeldung.
Beim Laden der UF wird nur der dazugehörige Wert von Cells(zeile, 29) und der jeweilge Radiobutton nicht geladen.
Gruß
Peer
AW: Laufzeitfehler 424
29.12.2019 15:27:44
Nepumuk
Hallo Peer,
meine Schuld, ich habe die Parameter der Instr-Funktion vertauscht.
Teste mal damit:
Private Sub UserForm_Initialize()
    
    Dim zeile As Long
    Dim Repeatings As Long
    Dim N As Long
    Dim letzte As Range
    Dim i As Long
    Dim HeimatOrt As Range
    Dim ETS As Range
    
    With Worksheets("Parameter")
        Set HeimatOrt = Union(.Cells(18, 3), .Cells(18, 4), .Cells(18, 5))
        Set ETS = Union(.Cells(21, 3), .Cells(21, 4), .Cells(21, 5))
    End With
    
    zeile = ActiveCell.Row
    
    With Application
        
        If InStr(1, Join(.Transpose(.Transpose(HeimatOrt.Value))), txt_BeginnOrt.Text) > 0 Then
            
            opt_HeimatOrt.Value = True
            opt_AndererOrt.Value = False
            opt_ETS.Value = False
            txt_BeginnOrt = Cells(zeile, 29).Value
            
        ElseIf InStr(1, Join(.Transpose(.Transpose(ETS.Value))), txt_BeginnOrt.Text) > 0 Then
            
            opt_AndererOrt.Value = False
            opt_HeimatOrt.Value = False
            opt_ETS.Value = True
            txt_BeginnOrt = Cells(zeile, 29).Value
            
        End If
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 424
29.12.2019 16:41:42
Peer
Hallo Nepumuk.
Danke.
Das erste Problem wurde zwar behoben, aber der Radio-Button bleibt davon unberührt.
Vielleicht sende ich dir die Datei besser zur Ansicht.
https://www.herber.de/bbs/user/134036.xlsm
LG
Peer
AW: Laufzeitfehler 424
29.12.2019 17:08:31
Nepumuk
Hallo Peer,
teste mal:
Private Sub UserForm_Initialize()
    
    Dim zeile As Long
    Dim Repeatings As Integer
    Dim N As Integer
    Dim letzte As Range
    Dim i As Long
    Dim wks As Worksheet
    Dim HeimatOrt As String
    Dim ETS As String
    
    Set wks = Worksheets("Parameter")
    
    With wks
        HeimatOrt = .Cells(18, 3).Value & " " & .Cells(18, 4).Value & ", " & .Cells(18, 5).Value
        ETS = .Cells(21, 3).Value & " " & .Cells(21, 4).Value & ", " & .Cells(21, 5).Value
    End With
    
    zeile = ActiveCell.Row
    
    'Arbeitstag
    txt_ArbZ_Beginn.Value = Format(Cells(zeile, 20), "hh:mm") 'Beginn
    txt_ArbZ_Ende.Value = Format(Cells(zeile, 21), "hh:mm") 'Ende
    txt_ArbZeit.Value = Format(Cells(zeile, 22), "hh:mm") 'Arbeitszeit abzgl Pause
    
    lbl_Kalendertag = Cells(zeile, 2)
    cbx_Reisezweck = Cells(zeile, 26)
    'cbx_Zielort = Cells(zeile, 31)
    chx_FAE = Cells(zeile, 7)
    
    'Verwendung
    If Cells(zeile, 4) = "Ausbilder" Then
        Me.opt_Ausbilder.Value = True
        txt_SchichtNr.Visible = False
    ElseIf Cells(zeile, 4).Text = "Krank" Then
        Me.opt_Krank.Value = True
        txt_SchichtNr.Visible = False
    ElseIf Cells(zeile, 4).Text = "Urlaub" Then
        Me.opt_Urlaub.Value = True
        txt_SchichtNr.Visible = False
    ElseIf Cells(zeile, 4).Text = "Ruhe" Then
        Me.opt_Ruhe.Value = True
        txt_SchichtNr.Visible = False
    ElseIf Cells(zeile, 4).Text = "Schicht" Then
        Me.opt_Schicht.Value = True
        txt_SchichtNr.Visible = True
        txt_SchichtNr = Cells(zeile, 5)
    End If
    
    'Pause
    If Cells(zeile, 24) = "" Then
        Me.opt_Pause0.Value = True
    ElseIf Cells(zeile, 24).Text = "0:30" Then
        Me.opt_Pause30.Value = True
    ElseIf Cells(zeile, 24).Text = "0:45" Then
        Me.opt_Pause45.Value = True
    End If
    
    'PTZ
    If Cells(zeile, 12) = "1" Then
        Me.opt_PTZ1.Value = True
    ElseIf Cells(zeile, 11) = "1" Then
        Me.opt_PTZ2.Value = True
    End If
    
    'Abgabeart
    If Cells(zeile, 33) = "App" Then
        Me.opt_App.Value = True
    ElseIf Cells(zeile, 33) = "Papier" Then
        Me.opt_Papier.Value = True
    End If
    
    'Dienstreise
    If txt_BeginnDatum > 0 Then
        chk_Dienstreise.Value = True
    ElseIf txt_BeginnDatum = 0 Then
        chk_Dienstreise.Value = False
        
    End If
    txt_BeginnDatum = Cells(zeile, 27)
    txt_BeginnZeit = Format(Cells(zeile, 28), "hh:mm")
    txt_EndeDatum = Cells(zeile, 30)
    txt_EndeZeit = Format(Cells(zeile, 31), "hh:mm")
    txt_BeginnOrt = Cells(zeile, 29).Value
    
    If txt_BeginnOrt.Text = HeimatOrt Then
        
        opt_HeimatOrt.Value = True
        opt_AndererOrt.Value = False
        opt_ETS.Value = False
        
    ElseIf txt_BeginnOrt.Text = ETS Then
        
        opt_AndererOrt.Value = False
        opt_HeimatOrt.Value = False
        opt_ETS.Value = True
        
    End If
    
    ' If txt_BeginnOrt.Value = HeimatOrt.Text Then 'wks.Cells(18, 3) & " " & wks.Cells(18, 4) & ", " & wks.Cells(18, 5).Text Then
    ' opt_HeimatOrt.Value = True
    ' opt_AndererOrt.Value = False
    ' opt_ETS.Value = False
    ' ElseIf txt_BeginnOrt.Value = ETS.Text Then 'wks.Cells(21, 3) & " " & wks.Cells(18, 4) & ", " & wks.Cells(21, 5).Text Then
    ' opt_AndererOrt.Value = False
    ' opt_HeimatOrt.Value = False
    ' opt_ETS.Value = True
    ' End If
    
    txt_Zieladresse = Cells(zeile, 32)
    txt_Abgabe = Cells(zeile, 34)
    txt_Bearbeitung = Cells(zeile, 35)
    txt_Auszahlung = Cells(zeile, 36)
    txt_Bemerkungen = Cells(zeile, 37)
    
    'Sheet "Reiseziele" Spalten auslesen
    'With Me.cbx_Zielort
    ' .ColumnCount = 2
    ' .BoundColumn = 2
    ' .TextColumn = 2
    ' For Repeatings = 1 To Sheets("Reiseziele").Range("A65536").End(xlUp).Row
    ' .AddItem
    ' N = .ListCount - 1
    ' .List(N, 0) = Sheets("Reiseziele").Cells(Repeatings, 1)
    ' .List(N, 1) = Sheets("Reiseziele").Cells(Repeatings, 2)
    ' .List(N, 2) = Sheets("Reiseziele").Cells(Repeatings, 3)
    ' ' .List(N, 3) = Sheets("Reiseziele").Cells(Repeatings, 4)
    ' ' .List(N, 4) = Sheets("Reiseziele").Cells(Repeatings, 5)
    ' ' .List(N, 5) = Sheets("Reiseziele").Cells(Repeatings, 6)
    ' Next
    'End With
    
    '(zentriert) zeigt UF in Fenstermitte bei mehr als einem Monitor --------
    Dim sngTop As Single, sngLeft As Single
    Me.StartUpPosition = 0
    sngLeft = Application.Left + Application.Width / 2 - Me.Width / 2
    sngTop = Application.Top + Application.Height / 2 - Me.Height / 2
    
    Me.Left = sngLeft
    Me.Top = sngTop
    '(zentriert) ENDE -------------------------------------------------------
End Sub

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 424
29.12.2019 18:13:03
Peer
Hallo Nepumuk.
Habe ich versucht, aber beim Laden bleibt das Textfeld leer und der Radiobutton reagiert auch nicht darauf.
LG
Peer
AW: Laufzeitfehler 424
29.12.2019 18:49:39
Nepumuk
Hallo Peer,
es muss eine Adresse in Spalte AC stehen. Entweder deine Heimatadresse oder die der "ersten Tätigkeitsstätte".
1. Habe ich dir den Code nochmal ergänzt für "Anderer Ort":
If txt_BeginnOrt.Text = HeimatOrt Then
    
    opt_HeimatOrt.Value = True
    opt_AndererOrt.Value = False
    opt_ETS.Value = False
    
ElseIf txt_BeginnOrt.Text = ETS Then
    
    opt_AndererOrt.Value = False
    opt_HeimatOrt.Value = False
    opt_ETS.Value = True
    
Else
    
    opt_AndererOrt.Value = True
    opt_HeimatOrt.Value = False
    opt_ETS.Value = False
    
End If

2. Trag mal diese Adressen in Spalte AC ein und schau was passiert:
Arbeitsblatt mit dem Namen 'Januar'
AC
1280997 München, Ludwigsfelder Str. 85
1386415 Mering, Oskar-von-Miller-Str. 10

Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 424
29.12.2019 19:09:46
Peer
Hallo Nepumuk.
Der bringt mir jetzt Laufzeitfehler 91. ?
Es muss nicht unbedingt eine Adresse drin stehen. Es kann auch leer sein in Spalte 29 (Parameter).
Es sollte beim Laden die Zelle ausgelesen werden, und der Wert in "txt_BeginnOrt" geschrieben werden. Wenn nichts drin steht, sollte der Radio "AndererOrt" aktiv sein, wenn der Wert dem HeimatOrt entspricht, der Radio "Heimatort" und in txt_BeginnOrt der Wert aus HeimatOrt. Analog dem ETS.
LG
Peer
AW: Laufzeitfehler 424
29.12.2019 19:16:19
Nepumuk
Hallo Peer,
kann ich nicht nachvollziehen. Ich lade dir mal deine Mappe hoch:
https://www.herber.de/bbs/user/134037.xlsm
Gruß
Nepumuk
Anzeige
AW: Laufzeitfehler 424
29.12.2019 19:28:22
Peer
Hi.
Den Laufzeitfehler habe ich gefunden. Mein Fehler. Habe bei den ganzen hin und her schreiben das Deklarieren von HeimatOrt und ETS als String statt Range vergessen umzustellen.
Jetzt ist dank deiner Geduld und Hilfe alles Bestens.
Viele, vielen Dank, Nepumuk
LG
Peer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige