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

VBA nur gefilterte Zellen kopieren

VBA nur gefilterte Zellen kopieren
17.01.2021 11:49:14
Romy
Guten Morgen
ich benötige ein bisschen Hilfestellung. Ich habe mir mittels Internet und diesem Forum folgenden Code zusammengebastelt:

Sub Pers1()
'Es werden alle vorhandenen Datensätze aus der Quelle in das Ziel kopiert
Dim wkQuelle As Worksheet, wkziel As Long
Dim cnt As Long, aktzeile As Long, erstzeile As Long
Dim LastRowAll As Long, LastColAll As Long
Set wkQuelle = Worksheets("LeitE")
Set wkziel = Worksheets("Telefonverzeichnis")
aktzeile = wkziel.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row  _
+ 2
erstzeile = wkziel.Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious). _
Row + 3
With wkQuelle
If .FilterMode Then .ShowAllData
.ListObjects("KK_LeitE").Range.AutoFilter Field:=19, Criteria1:=""
For cnt = 1 To .Cells(Cells.Rows.Count, "A").End(xlUp).Row
wkziel.Cells(aktzeile, 1) = .Cells(cnt, 6)
wkziel.Cells(aktzeile, 2) = .Cells(cnt, 7)
wkziel.Cells(aktzeile, 3) = .Cells(cnt, 8) & ", " & .Cells(cnt, 9)
wkziel.Cells(aktzeile, 4) = .Cells(cnt, 19)
aktzeile = aktzeile + 1
Next
End With
LastRowAll = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastColAll = ActiveSheet.Cells.Find(What:="*", SearchOrder:=xlByColumns, SearchDirection:= _
xlPrevious).Column
'Als Tabelle formatieren:
wkziel.ListObjects.Add(xlSrcRange, Range(Cells(erstzeile, 1), Cells(LastRowAll, LastColAll)), ,  _
xlYes).Name = "Tel_Pers1"
wkziel.ListObjects("Tel_Pers1").TableStyle = "TableStyleLight11"
Set wkziel = Nothing
Set wkQuelle = Nothing
End Sub
Durch den Autofilter für Spalte 19 soll die Quelltabelle nur diese Einträge anzeigen, welche in Spalte 19 einen Wert beinhalten. Leere Zeilen sollen ausgeblendet werden. In der weiteren Folge sollen auch nur die sichtbaren Zeilen kopiert werden. Und da liegt bei mir das Problem. Das vorliegende Makro kopiert auch die Zeilen/Zellen, welche in Spalte 19 keinen Wert haben. Könnt ihr mir bitte Hilfestellung geben?
Gruß Romy

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA nur gefilterte Zellen kopieren
17.01.2021 11:56:37
Daniel
Hi
Da musst du, bevor du die Werte überträgst, noch eine Abfrage einbauen, ob die Zeile sichtbar ist:
For cnt = 1 to ...
If .Rows(cnt).hidden = False then
wkziel.Cells(aktzeile, 1) = .Cells(cnt, 6)
Ende if
Next
Gruß Daniel
AW: o.w.T.
17.01.2021 12:06:03
Romy
Danke Daniel, funktioniert.
Wie wär's mit: If Not .Rows(cnt).Hidden Then ? owT
17.01.2021 14:24:35
Luc:-?
:-?
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige