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

VBA, Abfrage Zeile leer dann ...

VBA, Abfrage Zeile leer dann ...
03.05.2007 12:47:00
Peter
Hallo alle zusammen,
in meinem Code habe ich versucht folgendes WENN DANN Problem zu lösen.
Wenn die Zellen der Zeile unter der aktiven Zeile leer sind soll nichts passieren, wenn die Zelle in Spalte A der Zeile über der aktiven Zeile leer ist soll nichts passieren, ansonsten bla bla.
Mein Code:
If ActiveCell.Row - 1 "" Then 'Abfrage ob unter aktiver Zeile eine leere Zeile ist
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 1
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
End If
If ActiveCell.Row + 1.Column = 1 "" Then 'Abfrage ob über der aktiver Zeile in Spalte A eine Leerezelle ist
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 1
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
Else
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 1
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
End If
Kann mir jemand helfen?
Danke im Voraus
Grüße aus Berlin

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 12:53:00
Matthias
Hallo Peter,
so bekommst du die Anzahl der nichtleeren Zellen in Zeile [z]:

WorksheetFunction.CountA(Rows(ActiveCell.Row + 1))
WorksheetFunction.CountA(Rows(ActiveCell.Row - 1))


Wenn der Ausdruck also 0 ist, ist die Zeile leer.
Konnte ich helfen?
Gruß Matthias

AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 13:15:08
Peter
Hallo Matthias,
der Code bleibt bei folgender Stelle hägen?!
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Mein Code:
If WorksheetFunction.CountA(Rows(ActiveCell.Row + 1)) > 0 Then 'Abfrage ob über aktiver Zeile eine leere Zeile ist
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 1
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
~f~End If
~f~If WorksheetFunction.CountA(Rows(ActiveCell.Row - 1)) > 0 Then 'Abfrage ob unter aktiver Zeile eine leere Zeile ist
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 1
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
End If
Wo ist der Fehler?
Gruß
Peter

Anzeige
AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 13:18:00
Matthias
Welcher Fehler kommt denn?
Gruß Matthias

AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 13:29:00
Peter
Hallo Matthias,
folgende Fehlermeldung:
Laufzeitfehler '1004'
Anwendungs- oder Objektdefinierter Fehler
Gruß
Peter

AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 14:38:00
Peter
Hallo Matthias,
ich könnte das Problem lösen.
Danke Dir.
Grüße aus Berlin

AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 14:39:48
Matthias
Hallo Peter,
freut mich; fürs Archiv wäre es nicht schlecht, wenn du die Lösung hier kurz schreibst.
Gruß Matthias

AW: VBA, Abfrage Zeile leer dann ...
03.05.2007 15:02:40
Peter
Hallo,
ich habe einfach gesagt das aus der 2. Reihe über der aktiven Zeile bis ans Ende der Tabelle kopiert wird. Wenn ich die letzte Zeile in der Tabelle gelöscht habe, hat Excel immer noch die Möglichkeit wenigstens in eine Zeile bis ans Ende der Tabellein zu kopieren. Vorher war die aktive Zeile die erste Leerzeile unter dem Tabellenende und Excel versuchte die Formeln aus der Zeile darüber (Tabellenende) in die Leerzeile zu kopieren. Der Code sagt aber kopiere bis ans Tabellenende, man ist aber schon am Ende!
mein neuer Teilcode (ohne If CountA EndIf etc.):
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 2
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
mein ganzer Code:

Private Sub Zeile_löschen_Click()
Dim cell As Range
Dim a As Long
SpeedUp (True)
ActiveSheet.Unprotect Password:="Peter"
If ActiveCell.Row  6 Then
If ActiveCell.Column = 1 And IsDate(ActiveCell) Then 'Zelle in Spalte A aktiviert
If MsgBox("Wollen Sie diese Zeile löschen?", vbOKCancel + _
vbQuestion, "Achtung!") = 1 Then
ActiveCell.EntireRow.Delete
a = Cells(65536, 1).End(xlUp).Row - ActiveCell.Row + 2
For Each cell In Rows(ActiveCell.Row - 1).SpecialCells(xlCellTypeFormulas, 23)
cell.Copy Destination:=cell.Offset(1, 0).Resize(a, 1)
Next
End If
Else
MsgBox "Sie haben keine Zeile markiert!"
End If
Else
MsgBox "Sie können diese Zeile nicht löschen!"
End If
ActiveSheet.Protect Password:="Peter"
SpeedUp (False)
End Sub


Grüße aus Berlin

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige