Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Error Handling bei UserRange Eingabe
zurück: VBA funktioniert unter Excel 2007 nicht richtig.Einstellunge weiter: Externe Verknüpfungen unterbinden per VBA Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
10. Jun 2011, 04:35
Rufname:

Error Handling bei UserRange Eingabe - Error Handling bei UserRange Eingabe

Nach oben
       Version: Office 2003

Hallo,

ich habe derzeit folgenden Code um vom Benutzer einen Bereich, das eigentlich nur eine Zelle sein sollte, abzufragen.

Code:
On Error Resume Next

While Not Cells(lngRow, 1).Font.Bold = True
Set rngRange = Nothing
Set rngRange = Application.InputBox("Select a header to delete!", _
                    "Row selection:", Type:=8)

If rngRange Is Nothing Then
 MsgBox "Canceled!"
 Exit Sub
End If
On Error GoTo 0

    lngRow = rngRange.Row
    If Not Cells(lngRow, 1).Font.Bold = True Then
    MsgBox ("Please select the header and not just a entry!")
    End If
    If Cells(lngRow, 1).Value = "Empty Task" Then
    MsgBox ("You are not allowed to delete this!")
    Exit Sub
    End If

Wend

Wenn beim ersten Mal auf abbrechen geklickt wird, klappt das Abfangen und die Meldung "canceled" wird ausgegeben.
Wenn nun zum zweiten Mal die Abfrage nach der Zelle kommt und der Benutzer dort auf abbrechen klickt, so kommt die Fehlermeldung:
"Runtime Error 424
Object required"
Wie kann ich das unterbinden?

Gruss
y-vonne
Gast


Verfasst am:
10. Jun 2011, 08:32
Rufname:


AW: Error Handling bei UserRange Eingabe - AW: Error Handling bei UserRange Eingabe

Nach oben
       Version: Office 2003

Sehr eigenwillige Formatierung. So ist es richtig.

Code:
Sub irgendwas()
    On Error Resume Next
   
    While Not Cells(lngRow, 1).Font.Bold = True
        Set rngRange = Nothing
        Set rngRange = Application.InputBox("Select a header to delete!", _
                        "Row selection:", Type:=8)
   
        If rngRange Is Nothing Then
            MsgBox "Canceled!"
            Exit Sub
        End If

        On Error GoTo 0 

        lngRow = rngRange.Row
        If Not Cells(lngRow, 1).Font.Bold = True Then
            MsgBox ("Please select the header and not just a entry!")
        End If
        If Cells(lngRow, 1).Value = "Empty Task" Then
            MsgBox ("You are not allowed to delete this!")
            Exit Sub
        End If
    Wend
End Sub


Dein Problem:

Du überspringst mit: On Error Resume Next deine Fehler. Mit Anweisung On Error GoTo 0 schaltest du das wieder aus und willst zu einem definierten Punkt springen den es gar nicht gibt. Somit hast du das Fehler überspringen ausgeschaltet.

Du hast aber einen Fehler den du beim ersten mal überspringst beim zweiten Mal haut es dich dann aber auf die Nase:

Code:
While Not Cells(lngRow, 1).Font.Bold = True

in lngRow steht ab Start ab nichts drin. Also kann man darauf auch nicht zugreifen.

Wandle doch in eine Do While Schleife um.
seym
Im Profil kannst Du frei den Rang ändern


Verfasst am:
13. Jun 2011, 04:54
Rufname:

AW: Error Handling bei UserRange Eingabe - AW: Error Handling bei UserRange Eingabe

Nach oben
       Version: Office 2003

Hallo,

vielen dank fuer die Hinweise. Leider bin ich am Wochenende nicht dazu gekommen, den Code abzuaendern.

Ich hab nun
Code:
On Error Resume Next
und
Code:
On Error GoTo 0
auskommentiert und die Schleife in eine Do While Schleife umgeschrieben.
Leider erscheint dennoch der Fehler, dass kein Object vorhanden ist (Runtime Error '424' Object required)

Kannst du mir vielleicht noch etwas mehr auf die Spruenge helfe, wie ich die Fehlerbehandlung korrekt machen soll?

Was ich letztlich haben moechte ist, dass der Benutzer einen Zelle auswaehlen soll, die sich in einem bestimmten Bereich befindet. Waehlt er nichts aus, oder eine Zelle auserhalb des erlaubten Bereichs, so soll der Dialog noch mal erscheinen. Klickt er zu einem beliebigen Zeitpunkt auf Abbrechen, dann soll sich der Dialog beenden. (ohne Fehlermeldung ;) )

Gruss
Isi_666
Gast


Verfasst am:
13. Jun 2011, 08:16
Rufname:


AW: Error Handling bei UserRange Eingabe - AW: Error Handling bei UserRange Eingabe

Nach oben
       Version: Office 2003

Hallöchen,

wenn du den Errorhandler nach der Inputbox ausschaltest, musst du ihn für den nächsten Schleifendurchlauf auch vor der Inputbox wieder einschalten.

Code:
    While Not Cells(lngRow, 1).Font.Bold = True
        On Error Resume Next
        Set rngRange = Nothing
        Set rngRange = Application.InputBox("Select a header to delete!", _
            "Row selection:", Type:=8)
       
        If rngRange Is Nothing Then
            MsgBox "Canceled!"
            Exit Sub
        End If
        On Error GoTo 0

LG Isi
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Letzen Eingabe mit der 1. Eingabe Subtrahieren 2 Ike 374 20. Nov 2007, 22:50
Gast Letzen Eingabe mit der 1. Eingabe Subtrahieren
Keine neuen Beiträge Excel Formeln: Nur Zahlenfolgen als mögliche Eingabe in Zelle zulassen. 3 Gintonic39 1717 18. Apr 2007, 17:25
Gast Nur Zahlenfolgen als mögliche Eingabe in Zelle zulassen.
Keine neuen Beiträge Excel Formeln: WENN Daten dann Datum der Eingabe 7 Placebo 1711 28. März 2007, 09:47
Auch Gast WENN Daten dann Datum der Eingabe
Keine neuen Beiträge Excel Formeln: Eingabe Jahreszahl - Ausgabe erster und letzter Tag 2 Paolo 674 26. März 2007, 11:46
Paolo Eingabe Jahreszahl - Ausgabe erster und letzter Tag
Keine neuen Beiträge Excel Formeln: Bei einer Eingabe, soll immer der unterste Wert angenommen w 3 neokata 594 12. März 2007, 14:29
neokata Bei einer Eingabe, soll immer der unterste Wert angenommen w
Keine neuen Beiträge Excel Formeln: wenn keine Eingabe, dann leeres Feld. Wie geht das? 2 Saarländerin 1605 31. Jan 2007, 11:41
Saarländerin wenn keine Eingabe, dann leeres Feld. Wie geht das?
Keine neuen Beiträge Excel Formeln: Doppelte Eingabe von Werten verhindern! 5 Caro007 988 06. Dez 2006, 13:18
Kaischi Doppelte Eingabe von Werten verhindern!
Keine neuen Beiträge Excel Formeln: Habe Probleme mit der eingabe der Uhrzeit 5 Reto_m 884 01. Okt 2006, 11:54
Reto_m Habe Probleme mit der eingabe der Uhrzeit
Keine neuen Beiträge Excel Formeln: Nach jeder Eingabe aktualisierung der Verknüpfung realisiere 0 HJürgen 790 27. Sep 2006, 08:58
HJürgen Nach jeder Eingabe aktualisierung der Verknüpfung realisiere
Keine neuen Beiträge Excel Formeln: Eingabe von "ODER" in eine Wenn-Funktion 5 awi 915 28. Apr 2006, 23:13
Günni Eingabe von "ODER" in eine Wenn-Funktion
Keine neuen Beiträge Excel Formeln: Eingabe 75' ... gewünschtes Ergebnis 1:15 h 5 Rolf-D. 606 21. Apr 2006, 19:46
Rolf-D. Eingabe 75'   ... gewünschtes Ergebnis 1:15 h
Keine neuen Beiträge Excel Formeln: zelle leeren nach eingabe 1 Gast 912 13. Apr 2006, 22:33
fridgenep zelle leeren nach eingabe
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme