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

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!

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
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

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige