Excel Filterungsproblem :(
#1
Hallo Excel-Freunde,


habe ein kleines Problem.... habe per VBA eine Startmaske mit Userforms erstellt, per Button soll eine zusätzliche Excel-Datei automatisch gefiltert geöffnent werden...


die zu filternde Excel sieht folgendermaßen aus:

   (Spalte H)                      (Spalte I)
Höchstbestand                  Rundungswert
       72                                   36
       200                                100
        5                                     0
       ....                                   ....

in etwa sind es 1000 Zeilen... die Filterung sollte sein: "Höchstbestand ist größer als Rundungswert" ... alle anderen Werte sollen nicht angezeigt bzw ausgeblendet werden

bitte um Hilfe

Danke schon mal im Voraus  :)


Viele Grüße
Ptwo


Angehängte Dateien
.xlsx   test.xlsx (Größe: 9,56 KB / Downloads: 9)
Top
#2
Mach eine Hilfsspalte mit
Code:
=A2>B2
und filtere nach dieser Spalte.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • Ptwo
Top
#3
danke für die prompte Antwort,

die VBA-Maske und die Excel mit den Daten sind separat voneinander getrennt, mit welchem Befehlscode für den Button öffne ich die ungefilterte Excel-Datei gefiltert? Gibt es dazu einen Code der die gefiltert öffnet?







habe die VBA-Maske mal mit angehängt


Angehängte Dateien
.xlsm   Test.xlsm (Größe: 26,77 KB / Downloads: 4)
Top
#4
Hallo,

zurück


Angehängte Dateien
.xlsx   test(10).xlsx (Größe: 10,15 KB / Downloads: 7)
[-] Folgende(r) 1 Nutzer sagt Danke an Dieter63 für diesen Beitrag:
  • Ptwo
Top
#5
(05.03.2019, 15:44)Ptwo schrieb: danke für die prompte Antwort,

die VBA-Maske und die Excel mit den Daten sind separat voneinander getrennt, mit welchem Befehlscode für den Button öffne ich die ungefilterte Excel-Datei gefiltert? Gibt es dazu einen Code der die gefiltert öffnet?







habe die VBA-Maske mal mit angehängt

gibt es dazu einen VBA Befehlscode?
Top
#6
Hi

Du könntest in der Datei die geöffnet werden soll im Modul DieseArbeitsmappe den Code schreiben.
So wird immer gefiltert beim öffnen. (Balttnamen anpassen)
Code:
Private Sub Workbook_Open()
Dim n As Long
With Sheets("Tabelle1")
  .UsedRange.EntireRow.Hidden = False
  For n = 2 To .Cells(Rows.Count, 8).End(xlUp).Row
    If .Cells(n, 8) < .Cells(n, 9) Then .Cells(n, 1).EntireRow.Hidden = True
  Next n
End With
End Sub

Gruß Elex
Top
#7
vielen Dank für die Antworten :)

also müsste ich jedes mal bei einem wöchentlichem Datei-Auszug den Code hinuzufügen?
wäre dies über einen Button in der Maske umsetzbar bzw. automatisierbar?
Top
#8
Hi

Es sollte auch funktionieren wenn du den Code im Button verwendest.  Die ? anpassen.
Fehlerabfragen überlasse ich Dir. (Datei schon öffen, nicht existent)
Code:
Private Sub cmdgefiltertÖffnen_Click()
Dim n As Long

Workbooks.Open "C:\??????\????.xlsx"

With Sheets("??????")
  .UsedRange.EntireRow.Hidden = False
  For n = 2 To .Cells(Rows.Count, 8).End(xlUp).Row
    If .Cells(n, 8) < .Cells(n, 9) Then .Cells(n, 1).EntireRow.Hidden = True
  Next n
End With

End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • Ptwo
Top
#9
(05.03.2019, 19:16)Elex schrieb: Hi

Es sollte auch funktionieren wenn du den Code im Button verwendest.  Die ? anpassen.
Fehlerabfragen überlasse ich Dir. (Datei schon öffen, nicht existent)
Code:
Private Sub cmdgefiltertÖffnen_Click()
Dim n As Long

Workbooks.Open "C:\??????\????.xlsx"

With Sheets("??????")
  .UsedRange.EntireRow.Hidden = False
  For n = 2 To .Cells(Rows.Count, 8).End(xlUp).Row
    If .Cells(n, 8) < .Cells(n, 9) Then .Cells(n, 1).EntireRow.Hidden = True
  Next n
End With

End Sub
Gruß Elex



Private Sub CommandButton1_Click()

Dim n As Long

Workbooks.Open "C:\Users\1333\Desktop\Reporting\LIST_Freiverwendbar_HB.XLSX"

With Sheets("Sheet1")
  .UsedRange.EntireRow.Hidden = False
 For n = 2 To .Cells(Rows.Count, 1649).End(xlUp).Row
  If .Cells(n, 5) < .Cells(n, 8) Then .Cells(n, 1).EntireRow.Hidden = True
 Next n
End With



funktioniert noch nicht... Liste wird unverändert geöffnet :( bei with Sheets den Blatt-Namen eingeben oder?
Top
#10
Hi

in der Zeile
For n = 2 To .Cells(Rows.Count, 1649).End(xlUp).Row
steht die Rot Zahl für die Spalte H = 8 bei mir. Glaube jetzt mal nicht das die Spalte 1649 bei dir die Datenspalte ist.

If .Cells(n, 5) < .Cells(n, 8) Then .Cells(n, 1).EntireRow.Hidden = True
in #1 gibst du H und I als relevante Spalten an. Ob jetzt bei dir 5=E und 8=H die richtigen sind weisst nur du.

Gruß Elex
Top


Gehe zu:


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