Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
552to556
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
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

elseif

elseif
22.01.2005 17:41:34
christian
Hallo Profis,
ich habe mit Hilfe des Forums folgenden Code umgeschrieben.
Funktioniert auch. Jetzt müsste nur noch bei der Eingabe von einem Wert welcher nicht in der If-Abfrage steht eine msgbox aufgehen "Falscher Wert".
Der auskommentierte Teil war ein Versuch
ub BlattChangeMakro(myRow As Integer, myCol As Integer)
Application.ScreenUpdating = False
If myRow = 6 And myCol = 2 Then
If Cells(6, 2) = 1 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 2 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 3 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H200").Copy
'ElseIf Cells(6, 2) "" Then
'Goto Fehler
End If
Sheets("Angebot").Select
Range("A23").Select
Sheets("Angebot").Paste
Cells(1, 1).Select
Sheets("Angaben").Select
Cells(7, 2).Select
End If
': Fehler
'msgbox "Falscher Wert"
Application.ScreenUpdating = True
End Sub
Danke für die Hilfe
Gruss Christian
p.s. mit kind aufn arm ist scgwer zu tippen

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: elseif
Luc
Hallo Christian,
im Prinzip fast richtig - nur die Einsprungmarke ist wohl falsch definiert:
richtig ist "Fehler:" - Marken werden an der Stelle, wo sie wirksam werden sollen mit ":" abgeschlossen! Alternativ könntest Du natürlich auch einen Fehler auslösen der dann bei vorgenommener Fehlerumleitung eine msgbox auslöst, d.h.
als erster Befehl (nach dim) der

Sub muss "on error goto fmarke" stehen. Nachdem betreffenden "else if" wird "error 2000" (geeignete Fehlernr bitte der VBA-Hilfe entnehmen) notiert. Am Ende der 

Sub dann
"exit sub" (damit die Fehlerbehandlung bei normalem Verlauf nicht auch abgearbeitet wird - gilt auch für Deinen Code - fehlt hier ebenfalls!) anschließend dann
"fmarke: if err.number = 2000 then
"           msgbox "Falscher Wert"
"        else
"           msgbox err.description, vbokonly, "Fehler: " & err.number
"        end if
"        End Sub

Mit dem Befehl nach "else" sicherst Du, daß Dir andere auftretende Fehler auch angezeigt werden, denn die Fehlerumleitung verhindert i.d.R. die normale VBA-Fehleranzeige.
gut Test Luc
Anzeige
AW: elseif
22.01.2005 20:04:47
christian
Hallo Luc,
anbei mein Code der jetzt funzt. Leider zu gut. Macht jetzt bei jeder eingabe Fehlermeldung. Bin leider überfragt für weitere Vorgehensweise.

Sub BlattChangeMakro(myRow As Integer, myCol As Integer)
'Dim CurSheet As Worksheet
'Set CurSheet = Worksheets("Angebot")
Application.ScreenUpdating = False
If myRow = 6 And myCol = 2 Then
If Cells(6, 2) = 1 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 2 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 3 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H200").Copy
ElseIf Cells(6, 2) <> "" Then
GoTo Fehler
End If
Sheets("Angebot").Select
Range("A23").Select
Sheets("Angebot").Paste
Cells(1, 1).Select
Sheets("Angaben").Select
Cells(7, 2).Select
Fehler:
MsgBox " Falsche Eingabe"
End If
Application.ScreenUpdating = True
End Sub

Danke und Gruss Christian
Anzeige
AW: elseif -- EXIT !
Luc
Christian,
meine Ausführungen waren wohl zu lang?! Schau noch mal rein - da habe ich erwähnt, dass auch bei Deiner Methode eine Anweisung fehlt. Was soll denn Deine sub nach dem letzten select machen? Der Interpreter nimmt die nächste Anweisung und die fängt mit der Fehlermarke an. Das interessiert den Interpreter aber überhaupt nicht, denn nirgends steht, dass er das folgende übergehen soll. Also vorher "exit sub" einfügen.
Luc
AW: elseif -- EXIT !
23.01.2005 11:43:04
christian
Hallo Luc,
so hab ichs jetzt gemacht. Vielicht nicht sehe elegant geht aber

Sub BlattChangeMakro(myRow As Integer, myCol As Integer)
On Error GoTo fmarke
Application.ScreenUpdating = False
If myRow = 6 And myCol = 2 Then
If Cells(6, 2) = 1 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_MGV").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 2 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Karneval").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 3 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Schuetzen").Range("A1:H200").Copy
ElseIf Cells(6, 2) = 4 Then
Sheets("Angebot").Range("A23:H200").Delete Shift:=xlToLeft
Sheets("Brief_Westen").Range("A1:H200").Copy
fmarke: If Err.Number = 1004 Then
MsgBox "Falscher Wert"
End If
Sheets("Angaben").Select
Cells(6, 2).Select
Exit Sub
End If
Sheets("Angebot").Select
Range("A23").Select
Sheets("Angebot").Paste
Cells(1, 1).Select
Sheets("Angaben").Select
Cells(7, 2).Select
End If
Application.ScreenUpdating = True
End Sub

Danke und Gruss christian
Anzeige
AW: elseif -- EXIT !
Luc
Prima Christian, wird aber immer noch nicht so laufen wie gewünscht. Das mit der Fehlerauslösung war doch nur ein Alternativvorschlag, musst Du doch nicht machen! Nimm Deine vorherige Version, setze zwischen die Zeile mit 'fmarke:' und die Zeile davor eine Leerzeile, in die Du dann 'Exit Sub' schreibst (natürlich ohne die Apostrophs!). Dann wird es laufen. Das mit der Fehlerauslösung kannst Du ein anderes Mal probieren, nachdem Du in der online-Hilfe nachgeschaut hast.
ok? Luc

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige