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

If-Verschachtelung und On Error GoTo

If-Verschachtelung und On Error GoTo
03.07.2019 09:43:01
Leon.DerProf
Hallo liebe Community,
weiß jemand, warum ich bei folgendem Befehl immer auf AblaufenGo2 springe?
Dim festNr As Long
Dim findenNr As Range
Dim start As Long
Dim findenstart As Range
Dim ende As Long
Dim findenende As Range
Dim fte As String
Dim Maßnahme As String
Dim festNr2 As Long
Dim sh As Shape
Dim rng As Excel.Range
Dim shp As Excel.Shape
festNr = ActiveCell.Offset(0, -6).Value
start = ActiveCell.Offset(0, -5).Value
ende = ActiveCell.Offset(0, -4).Value
fte = ActiveCell.Offset(0, -3).Value
Maßnahme = ActiveCell.Offset(0, -2).Value
festNr2 = ActiveCell.Offset(0, 3).Value

On Error GoTo AblaufenGo2
If Worksheets("Balkenplan").Shapes("ZeitTeil " & festNr2 & " | Nr. " & festNr) Is Nothing Then
On Error GoTo AblaufenGo
If Not Worksheets("Balkenplan").Shapes("Zeit " & festNr) Is Nothing Then
Application.ScreenUpdating = False
With Worksheets(2)
.Activate
.Cells(findenNr.Row, findenstart.Column).Select
Set sh = ActiveSheet.Shapes.AddShape(msoShapeChevron, ActiveCell.Left, ActiveCell.Top +  _
ActiveCell.Height / 1.5, ActiveCell.Height, ActiveCell.Height / 3)
sh.Select
With Selection
.ShapeRange.ShapeStyle = msoShapeStylePreset26
.ShapeRange.Line.Weight = 1
.Placement = xlMoveAndSize
.name = "ZeitTeil " & festNr2 & " | Nr. " & festNr
End With
Set rng = Worksheets("Balkenplan").Range(Cells(findenNr.Row, findenstart.Column).Address)
Set shp = Worksheets("Balkenplan").Shapes("ZeitTeil " & festNr2 & " | Nr. " & festNr)
shp.Left = rng.Left
shp.Width = Range(findenstart.Address, findenende.Address).Width
End With
End If
End If
Exit Sub
AblaufenGo:
MsgBox "Erstellen Sie eine Aufgabe!", vbInformation, "Information"
Exit Sub
AblaufenGo2:
MsgBox "Diese Aufgabe existiert bereits!"
Exit Sub

Beste Grüße
Leon

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If-Verschachtelung und On Error GoTo
03.07.2019 09:53:13
Nepumuk
Hallo Leon,
so kannst du nicht prüfen ob ein Shape existiert. Du läufst mit der Methode in eine Fehler 9 - Index außerhalb des gültigen Bereichs
Du muss in einer Schleife alle Shapes der Tabelle abklappern und den Namen prüfen.
Beispiel:
Public Sub Beispiel()
Dim objShape As Shape
Dim blnFound As Boolean
With Worksheets(2)
For Each objShape In .Shapes
If objShape.Name = "ZeitTeil " & festNr2 & " | Nr. " & festNr Then
blnFound = True
Exit For
End If
Next
If blnFound Then
Else
MsgBox "Erstellen Sie eine Aufgabe!", vbInformation, "Information"
Exit Sub
End If
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: If-Verschachtelung und On Error GoTo
03.07.2019 09:53:16
Torsten
Hallo Leon,
weil du wohl irgendwo einen Fehler bekommst, den du aber mit diesem Sprung uebergehst.
Kommentier mal die Spruenge aus mit ' und schau, wo du eine Fehlermeldung bekommst. Dann kannst du pruefen, was falsch laeuft.
Diese Errorhandler sind immer so eine Sache.
Gruss Torsten
AW: If-Verschachtelung und On Error GoTo
03.07.2019 10:22:47
Leon.DerProf
Hallo Torsten und hallo Nepumuk,
Torsten, deine Methode funktioniert ganz gut, um GoTo Errors ausfindig zu machen. So habe ich einen anderen Fehler in einer anderen Prozedur gefunden, danke.
Nepumuk, also wirklich.. du bist wirklich fantastisch.
Zum Gluck kann ich mittlerweile Codes, wie die deine, leichter verstehen als damals. Aber selbst so etwas schreiben, ist schon wiederum etwas ganz anderes.
Ich habe entsprechend deiner Vorlage, die genial benutzerfreundlich rübergebracht wurde, mein Makro angepasst und es funktioniert perfekt.
Vielen vielen vielen Dank!!! :)
Beste Grüße
Leon
Anzeige

174 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige