Clever-Excel-Forum

Normale Version: Makro zur Auswertung filtert unvollständig
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich habe ein Tool1, welches eine vorgegebene Liste auswertet.
Das Ergebnis wird dann zusammengefasst und Länder/ Staaten spezifisch in ein anderes Tool2 geschrieben.
Tool1 filtert dabei die Liste nach Ländercodes, und schreibt betroffene Codes zusammen mit einer Stückzahl in Tool2.
Aktuell stehe ich vor zwei Problemen:
- In Tool2 gibt er die Daten immer doppelt aus (untereinander geschrieben).

- Ich würde gerne, wenn ein Staat nicht betroffen ist, diesen trotzdem in Tool2 schreiben, jedoch mit der Stückzahl null.

Da ich die Betreuung der Tools erst übernommen habe, hab ich noch so meine Probleme mit den Codes.
Unten dargestellt der zugehörige Code zum Vorgang.
Im Voraus besten Dank für eure Hilfe!

Code:
Function Staaten(geb As Worksheet, master As Worksheet)
Application.ScreenUpdating = False

'Wenn keine Staaten betroffen
On Error GoTo Fehler


Dim help As Worksheet
Set help = Sheets.Add



'filter alle Staaten aus der Gebietsübersicht
geb.Range("A1").AutoFilter Field:=1
geb.Range("A1").AutoFilter Field:=1, Criteria1:=Array( _
       "00001", "00002", "00003", "00004", "00005", "00006"), Operator:=xlFilterValues
     
       

'gefilterte Liste in Hilfstabelle einfügen
geb.Range("A2:D" & geb.UsedRange.Rows.count). _
SpecialCells(xlCellTypeVisible).Copy Destination:=help.Range("A1")

'Alle länder und anzahl fahrzeuge in Staaten Master einfügen
For i = 1 To help.Cells(Rows.count, 1).End(xlUp).row
If master.Range("B99").Value = "--Wird vom Tool ausgefüllt!--" Then
master.Range("B99").Value = help.Cells(i, 2)
master.Range("C99").Value = help.Cells(i, 3)
Else
master.Range("B99").Value = master.Range("B99").Value & vbLf & help.Cells(i, 2)
master.Range("C99").Value = master.Range("C99").Value & vbLf & help.Cells(i, 3)
End If
Next i
'Formatiert die Zeilenhöhe, je nachdem wie viel Text drin steht
master.Rows(99).AutoFit
master.Rows(99).RowHeight = Rows(99).RowHeight + 3





'Hilfsblatt schließen
Application.DisplayAlerts = False
help.Delete
Application.DisplayAlerts = True

'Filter wieder entfernen
geb.Range("A1").AutoFilter
Application.ScreenUpdating = True
Exit Function



Fehler:
MsgBox "Kein Staat betroffen"
End Function
Hallo Doktor

Das könnte man vermutlich auch mit einer Pivot-Tabelle erledigen.
Dazu wäre eine Beispielmappe mit Wunschergebnis erforderlich.
(07.02.2017, 12:04)shift-del schrieb: [ -> ]Hallo Doktor

Das könnte man vermutlich auch mit einer Pivot-Tabelle erledigen.
Dazu wäre eine Beispielmappe mit Wunschergebnis erforderlich.

Hallo shift-del,
Danke für deine Antwort!
Die beschriebene Funktion ist nur eine von wenigen die mit dem Drücken des Buttons ausgelöst wird.
Ich würde es daher gerne beim umsetzen mit Hilfe eines Makros belassen.
Jedoch vielen Dank für deine Rückmeldung!
Hallöchen,

was bedeutet denn
Zitat:- Ich würde gerne, wenn ein Staat nicht betroffen ist, diesen trotzdem in Tool2 schreiben, jedoch mit der Stückzahl null.

Hat der keinen Ländercode? Den Code für die dazu nötige codeänderung bekommst Du eventuell mit dem Makrorekorder hin. Starte den Makrorecorder, stelle den Filter mal so ein, dass die ohne mit angezeigt werden, und beende den Rekorder. Dann schaue Dir die Unterschiede bei den Kriterien an.