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

Tabellenblätter nach Begriffen durchsuchen

Tabellenblätter nach Begriffen durchsuchen
28.10.2015 09:59:39
Christian
Hallo zusammen,
folgenden Code nutze ich um bestimmte Zellwerten aus einem Sheet in ein anderes zu kopieren. Dabei wird in Tabelle1, Spalte A, vorab nach einem bestimmten Begriff gesucht und nur die entsprechenden Zeilen kopiert. Dieser Code funktioniert soweit wunderbar.

Private Sub Klick_Click()
Dim wksSrc As Worksheet, wksDst As Worksheet
Dim lRowSrc As Long, fRowDst As Long
Dim c As Range
With ThisWorkbook
Set wksSrc = .Sheets("Tabelle1")
Set wksDst = .Sheets("Tabelle2")
lRowSrc = wksSrc.Cells(Rows.Count, 1).End(xlUp).Row
For Each c In wksSrc.Range("A1:A" & lRowSrc)
If c = "abc" Then
With wksDst
fRowDst = .Cells(Rows.Count, 1).End(xlUp).Row + 1
c.Copy
.Cells(fRowDst, 1).PasteSpecial Paste:=xlPasteValues
c.Offset(0, 1).Copy
.Cells(fRowDst, 2).PasteSpecial Paste:=xlPasteValues
c.Offset(0, 6).Copy
.Cells(fRowDst, 3).PasteSpecial Paste:=xlPasteValues
End With
End If
Next c
End With
Application.CutCopyMode = False
End Sub

Nun soll der Code um folgendes erweitert werden:
In zwei weiteren Tabellenblättern (Tabelle3 und Tabelle4) soll quasi eine gleiche Abfrage passieren, nur sollen die entsprechenden Zellwerte untereinander aufgelistet werden.
Zusammengefasst soll der Code folgendes machen:
1. Durchsuche in Tabelle 1 Spalte A nach dem Begriff abc und kopiere die einzelnen Ergebnisse in Tabelle 2
2. Durchsuche in Tabelle 3 Spalte A nach dem Begriff def und kopiere die einzelnen Ergebnisse in Tabelle 2 unter die schon vorhandenen Ergebnisse
3. Durchsuche in Tabelle 4 Spalte A nach dem Begriff ghi und kopiere die einzelnen Ergebnisse in Tabelle 2 unter die schon vorhandenen Ergebnisse
Ich würde das alle gerne in einer Abfrage haben und nicht drei verschiedene erstellen.
Vielen Dank für die Hilfe.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter nach Begriffen durchsuchen
28.10.2015 13:36:02
matthias
Hallo Christian,
dann musst du dein Makro in eine Schleife packen, wo bei jedem Durchlauf ein Zähler durchläuft (For-Schleife). Je nach Zähler wird dem Source-Sheet ein anderer Name zugewiesen und auch dem Suchstring ein anderer Text.
Private Sub Klick_Click()
Dim wksSrc As Worksheet, wksDst As Worksheet
Dim lRowSrc As Long, fRowDst As Long, lSheet As Long
Dim c As Range
Dim sSuchsstring As String
With ThisWorkbook
Set wksDst = .Sheets("Tabelle2")
For lSheet = 1 To 3
Select Case lSheet
Case 1: Set wksSrc = .Sheets("Tabelle1"): sSuch = "abc"
Case 2: Set wksSrc = .Sheets("Tabelle3"): sSuch = "def"
Case 3: Set wksSrc = .Sheets("Tabelle4"): sSuch = "ghi"
End Select
lRowSrc = wksSrc.Cells(Rows.Count, 1).End(xlUp).Row
For Each c In wksSrc.Range("A1:A" & lRowSrc)
If c = sSuch Then
With wksDst
fRowDst = .Cells(Rows.Count, 1).End(xlUp).Row + 1
c.Copy
.Cells(fRowDst, 1).PasteSpecial Paste:=xlPasteValues
c.Offset(0, 1).Copy
.Cells(fRowDst, 2).PasteSpecial Paste:=xlPasteValues
c.Offset(0, 6).Copy
.Cells(fRowDst, 3).PasteSpecial Paste:=xlPasteValues
End With
End If
Next c
Next lSheet
End With
Application.CutCopyMode = False
End Sub
Die Select-Case-Anweisung kann man auch mit If-Anweisungen realisieren, ist Geschmackssache.
lg Matthias

Anzeige
AW: Tabellenblätter nach Begriffen durchsuchen
28.10.2015 13:39:47
matthias
"Dim sSuchstring As String" muss natürlich "sSuch" heissen, so wie es auch im Code verwendet wird.
lg Matthias

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige