mit VBA Filterbedingung festlegen
#1
Guten Morgen in das Excel-Forum.
Habe eine Frage zum Filtern / auswählen von Daten.

Traue mich mal meine Version zu veröffentlichen die aber gleich dazu gesagt nicht den gewünschten Erfolg bringt.

Mag jemand mir die entsprechende Berichtigung in die entsprechende Zeile oder als Ergänzung schreiben?

Ich bedanke mich schon jetzt für eure Hilfe.

Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim i As Long

With Tabelle1 ' End With

Worksheets("Tabelle2").Range("A1:z250").ClearContents ' LÖSCHEN geht vermutlich nicht so???????

Worksheets("Tabelle1").Range("a1:a25").Copy Destination:=Worksheets("Tabelle2").Range("A1")
Worksheets("Tabelle1").Range("b1:b25").Copy Destination:=Worksheets("Tabelle2").Range("b1")
Worksheets("Tabelle1").Range("c1:c25").Copy Destination:=Worksheets("Tabelle2").Range("c1")
Worksheets("Tabelle1").Range("d1:d25").Copy Destination:=Worksheets("Tabelle2").Range("d1")
Worksheets("Tabelle1").Range("e1:e25").Copy Destination:=Worksheets("Tabelle2").Range("e1")
Worksheets("Tabelle1").Range("f1:f25").Copy Destination:=Worksheets("Tabelle2").Range("f1")
Worksheets("Tabelle1").Range("g1:g25").Copy Destination:=Worksheets("Tabelle2").Range("g1")
Worksheets("Tabelle1").Range("h1:h25").Copy Destination:=Worksheets("Tabelle2").Range("h1")
Worksheets("Tabelle1").Range("i1:i25").Copy Destination:=Worksheets("Tabelle2").Range("i1")
Worksheets("Tabelle1").Range("j1:j25").Copy Destination:=Worksheets("Tabelle2").Range("j1")
Worksheets("Tabelle1").Range("k1:k25").Copy Destination:=Worksheets("Tabelle2").Range("k1")
Worksheets("Tabelle1").Range("l1:l25").Copy Destination:=Worksheets("Tabelle2").Range("l1")
Worksheets("Tabelle1").Range("m1:m25").Copy Destination:=Worksheets("Tabelle2").Range("m1")

ZeileMax = .UsedRange.Rows.Count
n = 1

For Zeile = 2 To ZeileMax

If .Cells(Zeile, 8).Value >= 1 And .Cells(Zeile, 8).Value <= 20 Then

' DIE Auswahl der Nummern in der Tabelle1 Spalte H wird nicht berücksichtigt!!!!!

.Rows(Zeile).Copy Destination:=Tabelle2.Rows(n)
n = n + 1

End If
Next Zeile
End With
End Sub
Top
#2
Hallöchen,

mal zwei, drei oder ein paar mehr Dinge.

Du verwendest With. With Tabelle1 könnte sich aber anders verhalten als With Worksheets("Tabelle1"), weil das zwei verschiedene Tabellen sein könnten.
Wenn letzteres gemeint ist, kannst Du das so programmieren und beim kopieren in der Angabe des Quellblattes weglassen.

Die Sache mit dem Löschen kannst Du einfach ausprobieren. Vieles, was wir wissen, haben wir auch so gelernt Smile

Das folgende Kopieren geht auch über den kompletten Bereich. Also die Quelle mit A1:M25 programmieren und beim Ziel reicht A1.

In der folgenden Schleife kopierst Du unter bestimmten Bedingungen jeweils eine komplette Zeile. Du fängst in Zeile 2 an, es betrifft also zum Teil auch den Bereich, den Du bereits bis zur Spalte M befüllt hast. Allerdings trägst Du die Daten dann auch min. eine Zeile versetzt ein. Wenn in Zeile2 die Bedingung erfüllt ist, kommt sie in Tabelle2 auf Zeile 1 usw. Wenn die Bedingung dann nicht nochmal erfüllt ist, hättest Du in Tabelle2 zumindest bis Spalte M in Zeile1 und 2 die gleichen Daten. Eventuell steht jedoch in Zeile 1 noch was irgendwo rechts neben M Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste