Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wo ist der Fehler? (VBA)

Wo ist der Fehler? (VBA)
03.09.2003 12:30:34
KleinKatha

Sub Leerzeilen_löschen2()
Hallo zusammen,
ich bin in den letzten Wochen zwar besser geworden, aber leider finde ich noch nicht alle Fehler, die ich in VBA mache.
Mit der folgenden Funktion soll zuerst überprüft werden, ob die aktive Zelle keinen Rahmen hat. Ist dies der Fall, soll die Schleife sofort unterbrochen werden ( hab ich mit GoTo Ende versucht).
Andernfalls tritt der Fall Else ein.
Wenn ich die Funktion starte, überspringt Excel immer meinen GoTo-Befehl, auch wenn die Bedingung "kein Rahmen" erfüllt ist.
Weiß jemand warum?

Sub Leerzeilen_löschen2()
Dim i As Long, Zeile As Long
Zeile = Cells(Rows.Count, 4).End(xlUp).Row
For i = Zeile + 1 To Zeile + 1 Step 0
Cells(i, 4).Select
If ActiveCell.BorderAround = False Then
GoTo Ende
Else
If Cells(i, 4).Value = "" Then
Cells(i, 4).EntireRow.Delete
End If
End If
Next i
Ende:
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Wo ist der Fehler? (VBA)
03.09.2003 12:39:51
Harald Kapp
Hallo KleinKatha,
BorderAround ist eine Methode, mit der Du den reahmen setzen kannst.
Was Du benötigst ist eine Eigenschaft, die Du abfragen kannst, um festzustellen, ob die Zelle einen Rahmen hat. Z.B. ActiveCell.Borders.Weight um die Dicke zu testen (ohne Rahmen Weight=2).

Gruß Harald

P.S.: Mit der Zeile
For i = Zeile + 1 To Zeile + 1 Step 0
läuft Die "Schleife" eh nur über eine einzige Zelle, da danach sofort die Abbruchbedingung für die Schleife erfüllt ist.
AW: Wo ist der Fehler? (VBA)
03.09.2003 12:49:00
Nike
Hi,
wohl eher so:


Sub Leerzeilen_löschen2()
Dim i As Long
dim Zeile As Long
Zeile = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To Zeile
If Cells(i, 4).Value = "" Then
Cells(i, 4).EntireRow.Delete
End If
Next i
End Sub


-manchmal ist weniger einfach doch mehr ;-)

Bye

Nike
Anzeige
AW: Wo ist der Fehler? (VBA)
03.09.2003 12:49:33
Willie
Versuch es mal so gruß Willie


Sub Leerzeilen_löschen2()
Dim i As Long, Zeile As Long
Zeile = Cells(Rows.Count, 4).End(xlUp).Row
For i = 1 To Zeile + 1
Cells(i, 4).Activate
If ActiveCell.BorderAround = False Then 'bei true springer so rein
GoTo Ende
Else
If Cells(i, 4).Value = "" Then
Cells(i, 4).EntireRow.Delete
End If
End If
Next i
Ende:
End Sub

Danke
03.09.2003 12:51:40
KleinKatha
Danke für den Tip mit BorderAround. Ich hab jetzt
ActiveCell.Borders.LineStyle = xlLineStyleNone verwendet und es funktioniert.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige