Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.06.2024 19:56:24
17.06.2024 19:39:46
Anzeige
Archiv - Navigation
1496to1500
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
Filter setzten nur bestimmte Werte
16.06.2016 10:22:52
Noureddine
Hallo,
ich brauch mal wieder eure Hilfe.
Ich möchte über VBA nur bestimmt Werte fliter, die ich über ein Formular steuere.
Mein Code sieht mittlerweile so aus:

ActiveSheet.Range(.Cells(2, 1), Cells(LetzteZeileC, 1)).AutoFilter _
Field:=1, Criteria1:=Array(txtJahrC & txtMonatC, txtJahrC & txtMonatC - 1, _
Str(txtJahrC & txtMonatC - 2), Str(txtJahrC - 1 & txtMonatC), Str(txtJahrC - 1 &  _
txtMonatC - 1), _
Str(txtJahrC - 1 & txtMonatC - 2)), Operator:=xlFilterValues

Er setzt mir leider nur die Filter, wenn keine Berechnung vorliegt. Ich habs bereits mit val () und str () versucht. Das Format in der Datei ist als Standard angegeben.
Was mache ich hier falsch?
Danke vorab für eure Hilfe.

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

Betreff
Datum
Anwender
Anzeige
AW: Filter setzten nur bestimmte Werte
16.06.2016 17:11:50
ChrisL
Hi
Leider ist die Frage völlig aus dem Zusammenhang gerissen (was willst du genau filtern, wie sind die Variablen definiert, wie sieht die Tabelle aus...).
txtJahr etc. klingt nach einem String. Damit kannst du nicht rechnen/subtrahieren.
Ich vermute es geht in diese Richtung:
https://www.herber.de/forum/archiv/1488to1492/t1489205.htm
cu
Chris

AW: Filter setzten nur bestimmte Werte
22.06.2016 19:15:53
Noureddine
Bin mal das Thema Filter mal kurz durch gegangen.
Folgendes Makro habe ich erstell:

Sub filter()
Dim Monat As String
Dim MonatVergleich As String
Dim LetzteZeileC As Integer
LetzteZeileC = Sheets("Calcs").Cells(Rows.Count, 1).End(xlUp).Rows.Row
Monat = InputBox("asasa", "dwas")
MonatVergleich = InputBox("asasa", "dwas")
'Tabellenblatt hinzufügen
Sheets.Add , Sheets(Sheets.Count)
ActiveSheet.Name = "Calcs2"
'Filter setzen
With Sheets("Calcs")
Range(.Cells(1, 1), .Cells(LetzteZeileC, 7)).AutoFilter Field:=4, _
Criteria1:="=" & Monat, Operator:=xlOr, Criteria2:="=" & MonatVergleich
'Gefiltertes kopieren
Range(.Cells(1, 1), .Cells(.UsedRange.Rows.Count, 7)).SpecialCells(xlCellTypeVisible). _
Copy
'Einfügen
Sheets("Calcs2").Cells(1, 1).PasteSpecial
'Filter entfernen
Range(.Cells(1, 1), .Cells(LetzteZeileC, 7)).AutoFilter Field:=4
End With
End Sub
Es funktioniert soweit sehr gut, jedoch habe ich eine Menge von Daten. Vor allem beim wieder einfügen braucht das Programm zimlich lang...
Gib es dazu ein vielleicht schnellere Variante?
Vielen Dank.
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige