es ist mir gelungen mit ein paar kleinen Änderungen den Code von snb auf meiner Beispiel Datei ans Laufen zu bringen. Weil er technisch eindeutig besser ist stelle ich ihn gerne ins Forum und bedanke mich herzlich bei snb für sein Hilfe!
Wenn du in Spalte F noch die Gesamtsumme von C-E brauchst ist das auch kein Problem.
Offen bleibt, wie wir regeln das Touren die Out sind nicht mehr aufgelistet werden? Daten wo das Datum verfallen ist könnte man rauszufiltern. Ich warte mal ab was dir als Lösung dazu einfaellt.
mfg Gast 123
Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:1 Nutzer sagt Danke an Gast 123 für diesen Beitrag 28 • danielhuszka
Danke für die ausführlichen Antworten und für die Hilfe!
Leider konnte ich dieser Datei immer noch nicht testen..da ich eine Problem, der VBA Code lauft nicht, da verschiedene Fehlmeldung kommt (Laufzeitfehler 13 - Typen unverträglich). nämlich da:
Sub M_snb() Dim Datei As String ' Open "D:\Spielwiese DaHu_4496.csv" For Input As #1 'CSV Dateiname aus Zelle G1 laden (ohne Endung!) Datei = Worksheets(ZielTab).Range("H1") & ".CSV"
'** hier bitte dein Laufwerk, Ordner und gültige CSV Datei angeben Open "D:\Spielwiese DaHu_4496.csv" For Input As #1 sn = Split(Input(LOF(1), #1), vbCrLf) Close
With CreateObject("scripting.dictionary") For j = 2 To UBound(sn) - 1 st = Split(sn(j), ";") c00 = st(0) & "_" & st(2)
sp = Array(st(0), st(2), IIf(st(4) = "518", st(17), ""), IIf(st(4) = "501", st(17), ""), IIf(InStr("501518", st(4)), 0, 1 * st(17))) If .exists(c00) Then sp = .Item(c00) If st(4) = 518 Then sp(2) = st(17) ElseIf st(4) = 501 Then sp(3) = st(17) Else sp(4) = sp(4) + st(17) End If End If
.Item(c00) = sp Next
' Sheet1.Cells(1).Resize(.Count, 5) = Application.Index(.items, 0, 0) Worksheets(ZielTab).UsedRange.Offset(1, 0).ClearContents Worksheets(ZielTab).Cells(2, 1).Resize(.Count, 5) = Application.Index(.items, 0, 0) 'überflüssige Nullen in Spalte E löschen Worksheets(ZielTab).Columns(5).Replace 0, "", xlWhole End With End Sub
Wo liegen die Problemen?
Erst wenn ich dies ausgetestet habe kann ich Antwort geben auf deine Frage.
da bin ich sehr verblüfft, und im Augenblick auch ratlos. In meinem Beispiel funktionierte es einwandfrei mit der Datei: Spielwiese DaHu_4496.csv
Hast du zum Testen eine andere CSV Datei, oder kann das Makro deine Datei vielleicht nicht öffnen??? Was passiert wenn du es einmal aenderst: For j = LBound(sn) To UBound(sn) - 1
Leider verstehe ich zu wenig von seinem Code um hier genau zu wissen woran das liegen kann ....??? Wenn es gar nicht klappt bitte deine Dateien als Beispiel hochladen, das ich sie bei mir noch mal testen kann. Vielleicht weiss snb woran es liegt und hilft uns mit seinem Rat weiter.
(16.09.2019, 16:49)Gast 123 schrieb: Hast du zum Testen eine andere CSV Datei, oder kann das Makro deine Datei vielleicht nicht öffnen??? Was passiert wenn du es einmal aenderst: For j = LBound(sn) To UBound(sn) - 1
da dürfte die Fehlermeldung genauso kommen.
@danielhuszka
öffne das Direkfenster (STRG + G), starte das Makro und wenn die Fehlermeldung kommt, gebe im Direktfenster
Danke für eure Aufmerksamkeit - Super Leute seid ihr, ich schätze es sehr!
@Gast 123: Ich habe es abgeändert, geht wiederum nicht (kommt sogar eine andere Fehlercode raus - nämlich der Nummer 9). Keine Ahnung wo die Probleme liegen können. Hoffentlich kann snb weiterhelfen.
@Steffl: Ich habe es im Direktfenster eingegeben und folgendes angezeigt hat: sp = Array(st(0), st(2), IIf(st(4) = "518", st(17), ""), IIf(st(4) = "501", st(17), ""), IIf(InStr("501518", st(4)), 0, 1 * st(17)))
Frage an euch:
Natürlich kann es auch sein, dass da irgendetwas von mir aus falsch eingegeben worden ist? Könnt ihr dies Mal überprüfen irgendwie?
SOLL: 1. Die CSV-Dateiname wird immer unter gleiche Dateiname abgespeichert (Spielwiese DaHu_4496.csv). Dies bedeutet folgendes: nach Ausführung die Makros ziehe ich die Daten aus die Datei "MGB_Layout_DaHu" und starte eine "neue Auswertung" mit andere Daten, aber mit die gleiche CSV-Dateiname (Spielwiese DaHu_4496.csv).
2. Es wird immer im Laufwerk D: gespeichert (keine Ordner - nichts spezielles)
Die aktuelle Dateien im Anhang!
Hoffentlich finden wir da gemeinsam eine Lösung Einen schönen Tag
in der Datei Spielwiese DaHu_4496.csv ist die Zelle R223 leer und darum funktioniert die Multiplikation nicht. Was übrigens für viele weitere Zellen in der Spalte R gilt. Ob das so richtig ist kannst nur du beurteilen.