Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1684to1688
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

Filtern nach Monat mit Makro

Filtern nach Monat mit Makro
02.04.2019 08:00:05
MaBlu
Hallo zusammen
Ich habe eine Liste erstellt mit Angaben zu Werkzeugen die auch sehr gut funktioniert,
jetzt sollte ich diese Auswerten und zwar Monatsweise und da stehe ich an!
Ich hatte versucht mit dem Makrorekorder aber wie ich den Monat einstellen soll keine Ahnung.
Ich weiss nicht wie ich diese einfach Filtern kann, Es werden mehrere Personen daran Arbeiten und da dachte ich an ein Makro habe aber keine Ahnung wie ich das bewerkstelligen kann.
Was möchte ich tun:
Auf dem Blatt ASW_WZ-Detail möchte ich den Monat wählen Zelle A1 dann sollte mir das Makro das Register-Blatt Eingabetabelle die Spalte D nach dem eingestellten Monat sortieren, in der Spalte C sollte es nur den Code Werkzeugproblem Filtern.
Anschliessend sollte es mir die Werkzeuge auf dem Blatt ASW_WZ-Deatail auflisten
Werkzeug mit Anzahl wievielmal kommt es vor zB. Im Januar
den Aufwand im Monat
und diese nach den ersten 12 Rangen nach Aufwand sortieren ich habe es mal von Hand dargestellt.
Nun meine Frage wie kann man das Automatisch machen kann mir hier jemand helfen?
Für eure Hilfe besten dank
Gruss MaBlu
hier die Vorlage
https://www.herber.de/bbs/user/128833.zip

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filtern nach Monat mit Makro
02.04.2019 10:35:47
Nepumuk
Hallo MaBlu,
dein ZIP-Folder ist leer.
Gruß
Nepumuk
AW: Filtern nach Monat mit Makro
02.04.2019 10:53:47
MaBlu
Hallo Nepomuk
Danke für die Meldung, weiss nicht wie das passiert ist sorry
hier die Datei:
https://www.herber.de/bbs/user/128838.zip
Gruss MaBlu
AW: Filtern nach Monat mit Makro
02.04.2019 20:03:28
Nepumuk
Hallo Martin,
warum machst du das Ganze nicht über den AutoFilter in deiner Liste?
Gruß
Nepumuk
AW: Filtern nach Monat mit Makro
03.04.2019 08:43:57
MaBlu
Hallo Nepumuk
zu deiner Nachfrage, ich mache das heute so, aber es ist sehr aufwendig weil ich ja alle Werkzeuge dann einzeln Filtern muss um die Anzahl zu bestimmen dann muss ich diese aufschreiben und so die Auswertung zu machen, ich denke mit einem Makro könnte man das viel eleganter machen nur weiss ich nicht wie?
Gruss MaBlu
Anzeige
AW: Filtern nach Monat mit Makro
03.04.2019 14:09:48
MaBlu
Hallo Nepumuk
Ich dachte schon perfekt..aber
ich hatte noch ein paar Einträge im April eingegeben und dann Funktioniert es nicht korrekt,
es trägt dann das gefundene bereits ab der ersten Zeile ein warum?
Ich wollte noch im Blatt ASW_WZ-Detailelle Zelle D1 die Summe einfügen, wenn der Fehler auftritt überschreibst den?
Man muss es dann von Hand löschen dann geht's wieder.
Schön wäre auch wenn der gesetzte Filter auf der Eingabetabelle am Schluss nach dem Eintragen wieder gelöscht würde.
Aber zuerst mal vielen Dank dass du dich meinem Problem angenommen hast,
schön wenn man solche Unterstützung bekommt.
Gruss MaBlu
https://www.herber.de/bbs/user/128889.zip
Anzeige
AW: Filtern nach Monat mit Makro
03.04.2019 14:30:44
Nepumuk
Hallo Martin,
so besser?
Option Explicit

Public Sub Auswertung(ByVal strMonth As String)
    Dim objDataObject As Object, objDictionary As Object
    Dim strTempString As String
    Dim avntTempRows As Variant, avntRow As Variant
    Dim avntOutput As Variant
    Dim ialngRow As Long, ialngCounter As Long
    Dim lngRows As Long
    With Tabelle1
        With .Rows(3)
            Call .AutoFilter(Field:=3, Criteria1:="Werkzeugproblem")
            Call .AutoFilter(Field:=4, Operator:= _
                xlFilterValues, Criteria2:=Array(1, CStr(Month(CDate("1." & _
                strMonth & ".2000"))) & "/1/" & CStr(Year(Date))))
        End With
        If .Cells(.Rows.Count, 1).End(xlUp).Row = 3 Then
            With Tabelle2
                .Range(.Cells(4, 1), .Cells(.Rows.Count, 4)).ClearContents
            End With
            Call MsgBox(Prompt:="Keine Daten gefunden.", _
                Buttons:=vbExclamation, Title:="Hinweis")
            Exit Sub
        End If
        With .AutoFilter.Range
            Range(.Cells(2, 2), .Cells(.Rows.Count, 8)).Copy
        End With
    End With
    Set objDataObject = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    Call objDataObject.GetFromClipboard
    strTempString = objDataObject.GetText
    Set objDataObject = Nothing
    Call Tabelle1.ShowAllData
    strTempString = Left$(strTempString, Len(strTempString) - 2)
    avntTempRows = Split(strTempString, vbCrLf)
    Set objDictionary = CreateObject("Scripting.Dictionary")
    For ialngRow = 0 To UBound(avntTempRows, 1)
        avntRow = Split(avntTempRows(ialngRow), vbTab)
        objDictionary.Item(avntRow(0)) = vbNullString
    Next
    lngRows = objDictionary.Count
    Call objDictionary.RemoveAll
    Redim avntOutput(0 To lngRows - 1, 0 To 2)
    For ialngRow = 0 To UBound(avntTempRows, 1)
        avntRow = Split(avntTempRows(ialngRow), vbTab)
        If Not objDictionary.Exists(avntRow(0)) Then
            Call objDictionary.Add(avntRow(0), ialngCounter)
            avntOutput(ialngCounter, 0) = avntRow(0)
            avntOutput(ialngCounter, 1) = 1
            avntOutput(ialngCounter, 2) = CDbl(avntRow(6))
            ialngCounter = ialngCounter + 1
        Else
            avntOutput(objDictionary.Item(avntRow(0)), 1) = _
                avntOutput(objDictionary.Item(avntRow(0)), 1) + 1
            avntOutput(objDictionary.Item(avntRow(0)), 2) = _
                avntOutput(objDictionary.Item(avntRow(0)), 2) + CDbl(avntRow(6))
        End If
    Next
    Set objDictionary = Nothing
    With Application
        .Calculation = xlCalculationManual
        .CutCopyMode = False
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    With Tabelle2
        .Range(.Cells(4, 1), .Cells(.Rows.Count, 4)).ClearContents
        .Range(.Cells(4, 2), .Cells(lngRows + 3, 4)).Value = avntOutput
        Call .Sort.SortFields.Clear
        Call .Sort.SortFields.Add(Key:=.Cells(3, 4), SortOn:=xlSortOnValues, _
            Order:=xlDescending, DataOption:=xlSortNormal)
        Call .Sort.SetRange(Rng:=.Range(.Cells(3, 2), .Cells(.Rows.Count, 4)))
        With .Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        .Cells(4, 1).Value = 1
        Call .Range(.Cells(4, 1), .Cells(lngRows + 3, 1)).DataSeries( _
            RowCol:=xlColumns, Type:=xlDataSeriesLinear)
    End With
    With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Filtern nach Monat mit Makro
03.04.2019 15:21:29
MaBlu
Hallo Nepumuk
Vielen vielen Dank,
jetzt ist es schön und Perfekt, ich weiss nicht wie man das so schnell hinbekommt,
aber es macht echt Spass, wünsche dir einen Super Tag
MaBlu

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige