Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Matthias,
kannst Du meine Vorschläge aus #2 umsetzen bzw. wird es damit was? Die beziehen sich ja auf die Anfangsfrage, wo noch kein Punkt als Trenner vorkam. Da ging es um einen zweiten Bindestrich.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.02.2016
Version(en): 2013
12.11.2017, 15:21
(Dieser Beitrag wurde zuletzt bearbeitet: 12.11.2017, 15:21 von Matthias3L.)
Ja das kann ich, danke. Dein Vorschlag ist gut. Ich bin gerade dabei es zu testen. Der Trenner ja, ob es jetzt ein Bindestrich ist oder ein Punkt (es ist beides) lässt sich sehr einfach im Code ergänzen.
Registriert seit: 11.02.2016
Version(en): 2013
22.11.2017, 18:25
(Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2017, 18:31 von Matthias3L.)
nochmal vielen Dank für eure Hilfe. Der Code funktioniert leider nicht. Bitte versteht dass jetzt nicht falsch aber ich will das Orginal nicht hochladen, und die Beispieldatei versuche ich so gut wie möglich nachzubauen, eben so dass das wichtigste drin ist. In der csv Datei kommen sehr viele Sonderzeichen vor (diese sind leider notwendig). Es erscheint folgende Meldung: Anwendungs- oder Objektdefinierter Fehler, markiert wird .Cells.... = Application.Transpose(Application.Transpose(arrTmp)) So; nun hab ich noch einen anderen Code gefunden der ähnlich aussieht und angeblich funktionieren soll, tut er aber nicht. Markiert wird wieder die gleiche Zeile. Ich hänge es mal an, ich wäre sehr dankbar wenn ihr euch das mal kurz ansehen könntet.
Beispiel.xlsm (Größe: 23,74 KB / Downloads: 4)
CSV file.csv (Größe: 430 Bytes / Downloads: 5)
Gruß
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Matthias, kann den Fehler erst mal nicht nachvollziehen - siehe Bild.
Schaue mal in die Überprüfung für das: lngLast und ActiveSheet.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1).Address und Application.Transpose(Application.Transpose(arrTmp)) ob das zusammenpasst oder vielleicht hier schon bei einem ein Fehler augegeben wird.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.02.2016
Version(en): 2013
23.11.2017, 10:25
(Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2017, 10:25 von Matthias3L.)
Danke, der code ist richtig. Ich habe meine Orginal csv Datei ein bisschen verändert, doppelte Leerzeichen gelöscht und doppelte Kommas (,,). Das kommt nur einmal in jeder Zeile vor, die anderen (,) sind nicht doppelt. Jetzt hat es geklappt, aber das kann ich doch nicht jedesmal per Hand anpassen. Gibt es hierfür eine Lösung? Kann man den code entsprechend ändern?
Gruß
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi, um doppelte Leerzeichen und doppelte Kommata per Makro zu löschen (jeweils nur eines stehen zu lassen), kannst Du den Makrorekorder verwenden. Also - Rekorder einschalten
- den Tauschvorgang ",," zu "," sowie "_ _" zu "_" (mit "_" = ein Leerzeichen) durchführen
- Rekorder beenden
Dann - den Code hier zeigen oder
- gleich den relevanten Teil in Dein bestehendes Makro einbauen oder
- das aufgezeichnete Makro mit CALL aufrufen.
Registriert seit: 11.02.2016
Version(en): 2013
23.11.2017, 15:32
(Dieser Beitrag wurde zuletzt bearbeitet: 23.11.2017, 15:32 von Matthias3L.)
Danke, auf die Idee bin ich auch schon gekommen. Der code muss an die richtige Stelle eingefügt werden. Z. B. bei
Open strFileName For Input As #1 oder bei With ActiveSheet
Aufgezeichnet hab ich:
Columns("A:A").Select Selection.Replace What:=",," Replacement:=",", LookAt:= xlPart, _ SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False
Registriert seit: 11.02.2016
Version(en): 2013
Das ist nicht die beste Lösung, oder ich hab etwas vergessen. Der erste Vorschlag von schauan mit dem Befehl INSTR ist sicher besser. Ich hab noch ein kleines Problem beim einbauen in den Code.
Das ist die codezeile:
INSTR(INSTR(1, lngR, ",,") +1), lngR, ",")
Was ist hier falsch? Meine Zeichenkette ist lngR, die nach der gesucht wird, Suchzeichen ,,
Gruß
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, wenn Du zwei Suchzeichen hast, müsstest Du auch 2 addieren. INSTR liefert den Wert, wo Dein Suchzeichen beginnt. Deine Kommas stehen z.B. an Stelle 20 und 21. INSTR liefert 20. +1 = 21. Ab Stelle 21 wird also bei +1 nach dem nächsten Komma gesucht - und prompt wird an Stelle 21 eins gefunden
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|