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

Forumthread: Zellen kopieren aus Autofilter

Zellen kopieren aus Autofilter
31.08.2020 12:41:52
Dennis
Hallo zusammen,
ich bräuchte mal eine kleine Hilfe. In einer Tabelle suche ich nach einem Begriff (kommt nur 1-mal vor). Danach blende ich ein paar Sachen aus, da ich nicht alle Informationen benötige. Die Daten kopiere ich jetzt einzeln in eine Zieltabelle. Einzeln mache ich es, weil in der Zieltabelle verbundene Zellen sind. Das funktioniert auch. Jetzt mein Problem:
Ich will 6 Spalten bzw. Zellen kopieren (hier im Code auf 3 gekürzt), aber es wird 6mal die erste Zelle kopiert. Wo ist mein Fehler?
Wenn eine Beispieldatei benötigt wird, stelle ich gerne eine zur Verfügung.
Vg und danke im voraus!
Sub Kopieren()
Dim lngZeileMax As Integer
Set tp = Worksheets("Übersicht")
Set tv = Worksheets("Daten")
Set tm = Worksheets("Ziel")
With Worksheets("Übersicht")
lngRowMax = .Cells(.Rows.Count, 2).End(xlUp).Row
m = 28
For n = 12 To lngRowMax
If .Cells(n, 12).Value  "" Then
a = Sheet12.Cells(n, 2).Value
Set alldata = tv.Range(tv.Cells(1, 1), tv.Cells(1, 6))
alldata.AutoFilter Field:=2, Criteria1:=a
tv.Columns(2).EntireColumn.Hidden = True
tv.Rows(1).EntireRow.Hidden = True
CustNr = tv.Cells(2, 1).SpecialCells(xlCellTypeVisible).Value
tm.Cells(m, 4) = CustNr
Descrip = tv.Cells(2, 3).SpecialCells(xlCellTypeVisible).Value
tm.Cells(m, 13) = Descrip
Qty = tv.Cells(2, 4).SpecialCells(xlCellTypeVisible).Value
tm.Cells(m, 22) = Qty
ResetAutoFilter
m = m + 2
Else
End If
Next
End With
End Sub

Sub ResetAutoFilter()
Set tp = Worksheets("Daten")
On Error Resume Next
tp.AutoFilterMode = False
tp.Columns(2).EntireColumn.Hidden = False
tp.Rows(1).EntireRow.Hidden = False
tp.ShowAllData
On Error GoTo 0
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen kopieren aus Autofilter
31.08.2020 13:08:43
Rudi
Hallo,
wozu filterst du, wenn der Begriff nur 1x vorkommt? Die Zeile kannst du auch anders ermitteln.
z.B.
Sub Kopieren()
Dim tp As Worksheet, tv As Worksheet, tm As Worksheet
Dim lngRowMax As Long
Set tp = Worksheets("Übersicht")
Set tv = Worksheets("Daten")
Set tm = Worksheets("Ziel")
Dim vntRow
Dim n As Long, m As Long
With tp
lngRowMax = .Cells(Rows.Count, 2).End(xlUp).Row
For n = 12 To lngRowMax
If .Cells(n, 12).Value  "" Then
vntRow = Application.Match(.Cells(n, 2).Value, tv.Columns(2), 0)
If Not IsError(vntRow) Then
tm.Cells(m, 4) = tv.Cells(vntRow, 2)
tm.Cells(m, 13) = tv.Cells(vntRow, 3)
'etc
m = m + 2
End If
End If
Next n
End With
End Sub

Gruß
Rudi
Anzeige
AW: Startwert m = 28 ? o.T.
31.08.2020 13:12:28
Gerd
Gruß Gerd
jepp! vergessen. owT
31.08.2020 13:34:40
Rudi
AW: jepp! vergessen. owT
31.08.2020 14:59:54
Dennis
Vielen Dank. Klappt super. An die Match-Funtkion hab ich nicht gedacht.
Anzeige
oder .FIND-Methode owT
31.08.2020 15:19:36
Rudi
AW: oder .FIND-Methode owT
31.08.2020 16:37:58
Dennis
Hallo Rudi,
habe noch eine Frage. Habe versucht die Formel nachzuvollziehen, aber kannst du mir nochmal kurz die folgeende Zeile erklären?
vntRow = Application.Match(.Cells(n, 2).Value, tv.Columns(2), 0)
AW: oder .FIND-Methode owT
31.08.2020 16:48:19
Rudi
sucht den Wert aus tp Zelle n,2 in tv Spalte2
Wenn er nicht gefunden wird, gibt vntRow einen Fehler zurück ansonsten die Zeile.
Anzeige
;

Forumthreads zu verwandten Themen

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