online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon avd vom 15.04.2022, 17:24 Options

Filtern nach Daten und Anzeige in einem anderen Tabellenblatt

Hallo zusammen,

hab da ein aufwendigeres Problem.

Und zwar möchte ich in einem Tabellenblatt mit einem Suchbegriff in einer Spalte alle exakten Treffer automatisch kopieren und in einem anderen Tabellenblatt unter dem Suchbegriff alle Zeilen auflisten lassen. (Zeilen sollen automatisch nach unten verschoben werden, da ich zuvor nicht weiß, wieviele Treffer es gibt.) Jedoch habe ich nicht nur einen Suchbegriff, sondern mehrere in einer Spalte untereinander, die auf den gleiche Bezugsspalte im anderen Tabellenblatt zugreifen.

mit Verweisen, Summewenn, Spezialfiltern hab ich es bereits versucht. Die Funktionen von Excel geben aber nur einen Wert als Ergebnis aus.


Antwort schreiben

Antwort 1 von nighty vom 17.04.2022, 07:10 Options

hi charlie brown ^^

tab 1 spalte a suchbegriffe ab zeile 2 nehme ich an

suchbereich ?

ausgabe welche worksheet ?

gruss nighty

Antwort 2 von avd vom 19.04.2022, 10:17 Options

Hallo nighty,

der/die Suchbegriffe liegen in Tab. Blatt 1 Spalte A. Das Ergebnisfeld liegt jeweils unter dem Suchbergriff in der/den Zeilen, abhängig von der Anzahl der gefundenen Treffer. Der Suchbereich liegt in Tab. Blatt 2 in Spalte A. Die Zeile mit dem übereinstimmenden Argument soll kopiert werden und in Tab. Blatt 1 unter dem Argument in einer neuen Zeile eingefügt werden.

Ich versuche es jetzt mal mit einem Schleifen Makros.

Gruß avd

Antwort 3 von nighty vom 19.04.2022, 10:55 Options

hi avd ^^

hier mal ein anfang :-)

suchkreterium ist hier die 1 bzw durch zelle ersetzen

gruss nighty

Option Explicit  

Sub FilterKopieren()
    With Worksheets("Tabelle2")
        .Range("A1").AutoFilter Field:=1, Criteria1:=1
        .Rows("2:" & .UsedRange.SpecialCells(xlCellTypeLastCell).Row).Copy Worksheets("Tabelle1").Range("A" & Worksheets("Tabelle1").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1)
        .Range("A1").AutoFilter
    End With
End Sub  

Antwort 4 von nighty vom 19.04.2022, 11:03 Options

hi avd ^^

oder vielleicht so :-))

vorher

suchbegriff1
suchbegriff2
suchbegriff3

nachher

suchbegriff1
fund1
fund2
suchbegriff2
fund1

etc.

das wuerde aber die ursprungsliste loeschen :-))

gruss nighty

Antwort 5 von avd vom 19.04.2022, 14:25 Options

Bekomme das Makros nicht zum Laufen. Der Teil
Autofilter im Makros funktioniert, der Rest nicht wirklich.

Die zweite Idee ist nicht schlecht, nur das mit dem Überschreiben wird nachteilig.

Gruß

Antwort 6 von nighty vom 20.04.2022, 11:13 Options

hi charlie brown ^^

vielleicht so :-)

gruss nighty

Tabelle1 spalte a suchbegriffe ab zeile 2
Tabelle2 flexibler suchbereich ab zeile 2
Tabelle3 ausgabe

Option Explicit  

Sub DatenSuchen()
    Dim SpaltenAnz As Long, QuellAnz As Long, ZeilenAnz As Long
    Dim Wks1Lzeile As Long, Wks2Lzeile As Long, Wks2Lspalte As Long
    Dim Zindex As Long
    Worksheets("Tabelle1").Activate
    Wks1Lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    ReDim WksSuchDat(1 To Wks1Lzeile, 1 To 1) As Variant
    WksSuchDat() = Range(Cells(1, 1), Cells(Wks1Lzeile, 1))
    Worksheets("Tabelle2").Activate
    Wks2Lzeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    Wks2Lspalte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
    ReDim WksQuelle(1 To Wks2Lzeile, 1 To Wks2Lspalte) As Variant
    ReDim WksNeu(1 To Wks2Lzeile, 1 To Wks2Lspalte) As Variant
    WksQuelle() = Range(Cells(1, 1), Cells(Wks2Lzeile, Wks2Lspalte))
    Worksheets("Tabelle3").Activate
    For ZeilenAnz = 2 To Wks1Lzeile
        For QuellAnz = 2 To Wks2Lzeile
            If WksSuchDat(ZeilenAnz, 1) = WksQuelle(QuellAnz, 1) Then
                Zindex = Zindex + 1
                For SpaltenAnz = 1 To Wks2Lspalte
                    WksNeu(Zindex, SpaltenAnz) = WksQuelle(QuellAnz, SpaltenAnz)
                Next SpaltenAnz
            End If
        Next QuellAnz
    Next ZeilenAnz
    Range(Cells(2, 1), Cells(Wks2Lzeile + 1, Wks2Lspalte)).Resize(UBound(WksNeu())) = WksNeu()
End Sub  

Ähnliche Themen

VBA: filtern
daManuu  05.11.2008 - 46 Hits - 2 Antworten

Summe - Filtern !
korfuweb  10.11.2008 - 53 Hits - 3 Antworten

Daten vom 1. Tabellenblatt auf dem 2. wiedergeben
112  08.01.2009 - 118 Hits - 12 Antworten

Daten von Excel-Tabellenblatt via VBA in Word übergeben
Zwula  06.03.2009 - 1919 Hits - 8 Antworten

Daten kopieren und im anderen Tabellenblatt wert einfügen
afetincii  03.04.2009 - 417 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 16:59:01 2026