07.02.2017, 11:49
(Dieser Beitrag wurde zuletzt bearbeitet: 07.02.2017, 13:37 von Rabe.
Bearbeitungsgrund: durch entfernte Font-Formatierung lesbarer gemacht
)
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!
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