Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen kopieren wenn kein Wert in Spalte

Zeilen kopieren wenn kein Wert in Spalte
25.08.2019 22:49:36
Andreas
Hallo alle zusammen ich hoffe ihr könnt mir helfen,
ich habe folgenden VBA Code aus diesem Forum

Sub Kopieren()
Dim iRow As Integer, iRowT
For iRow = 1 To 556
If IsEmpty(Cells(iRow, 6)) Then
iRowT = iRowT + 1
Worksheets("Tabelle2").Rows(iRowT).Value = _
Rows(iRow).Value
End If
Next iRow
End Sub

Es sollen mir alle Werte der Zeile in Tabelle2 kopieren wenn in Spalte 6 (Spalte F) leer ist.
Leider steht bei mir in Spalte F eine Formel und somit kopiert er die Zeile nicht!
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen kopieren wenn kein Wert in Spalte
25.08.2019 23:16:39
Rudi
Hallo,
versuchs mal mit
If Cells(iRow, 6)="" Then
Gruß
Rudi
AW: Zeilen kopieren wenn kein Wert in Spalte
26.08.2019 01:20:44
Werner
Hallo,
würde ich nicht per Schleife machen.
Wenn noch nicht vorhanden in deiner Tabelle1 eine Überschriftenzeile in
Zeile 1 einfügen.
Public Sub aaa()
Dim loSpalte As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Column
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).FormulaLocal = "=LÄNGE(F1)"
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).Value = _
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).Value
.Range(.Columns(1), .Columns(loSpalte)).AutoFilter
.Range("$A$1:$K$556").AutoFilter Field:=loSpalte, Criteria1:=0
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1, loSpalte - 1).Copy
Worksheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
.Range("A1").AutoFilter
.Columns(loSpalte).ClearContents
End With
End Sub
Gruß Werner
Anzeige
AW: Zeilen kopieren wenn kein Wert in Spalte
26.08.2019 17:17:01
Andreas
Hallo Werner,
vielen Dank für deine Hilfe.
Der erste Code funktioniert aber den zweiten verstehe ich nicht ganz.
Was für eine Überschriftenzeile soll erstellt werden.
Wenn ich den Code so ausführe dann markiert er mir in Tabelle 2 die erste Spalte?
Gruß
Andreas
AW: Zeilen kopieren wenn kein Wert in Spalte
26.08.2019 18:58:38
Werner
Hallo Andreas,
ich verstehe jetzt nicht wirklich, was daran so schwer zu verstehen ist.
Du willst Daten von Tabelle1 nach Tabelle2 kopieren, die in Spalte F leer sind.
Deinem Code nach zu urteilen beginnen deine Daten in Tabelle1 in Zeile 1.
Eine Überschriftenzeile einfügen = vor Zeile 1 eine leere Zeile einfügen und für alle vorhandenen Datenspalten eine Überschrift eintragen.
Zeile 1 = Überschriftenzeile
ab Zeile 2 beginnen dann die eigentlichen Daten.
Dann den Code testen.
Gruß Werner
Anzeige
AW: Zeilen kopieren wenn kein Wert in Spalte
26.08.2019 19:22:08
Andreas
Das Tabellenblatt heißt Deutag bei mir wo in Spalte F überprüft werden soll.
Ändere ich in den Code anstatt Tabelle1 zu Deutag und führe den Code aus dann
gibt er mir Laufzeitfehler 1004:Die AutoFilter-Methode des Range-Objektes konnte nicht aufgeführt werden.
Beim Debuggen zeigt er mir diese Zeile in gelb an:
.Range(.Columns(1), .Columns(loSpalte)).AutoFilter
Gruß
Andreas
Anzeige
AW: Zeilen kopieren wenn kein Wert in Spalte
26.08.2019 22:08:40
Werner
Hallo Andreas,
bei mir nicht. Aber versuch das mal, hatte auch noch vergessen eine Prüfung einzubauen, falls es im Bereich in Spalte F keine leeren Zellen gibt.
Public Sub aaa()
Dim loSpalte As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Column
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).FormulaLocal = "=LÄNGE(F1)"
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).Value = _
.Range(.Cells(1, loSpalte), .Cells(556, loSpalte)).Value
If WorksheetFunction.CountIf(.Range(.Cells(2, loSpalte), _
.Cells(556, loSpalte)), 0) > 0 Then
.Range(.Cells(1, 1), .Cells(556, loSpalte)).AutoFilter Field:=loSpalte, _
Criteria1:=0
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1, loSpalte - 1).Copy
Worksheets("Tabelle2").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
.Range("A1").AutoFilter
End If
.Columns(loSpalte).ClearContents
End With
End Sub
Gruß Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige