Zeichen vor einem bestimmten Zeichen löschen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Zeichen vor einem bestimmten Zeichen löschen

    Hallo,

    ich kopiere mit VBA mehrere Sachen von einer Tabelle in eine andere.

    Jetzt sind hier immer Nummern für die Straße vorhanden in der gleichen Zelle, die unterschiedlich lang sind, z.B. "123 / Sesamstraße"

    Wie kann ich alles vor dem "/" inklusive dem Querstrich entfernen, sodass nur "Sesamstraße" eingefügt wird?

    Danke im Voraus
    Hallo,

    kommt darauf an, wie Du kopierst.

    Kopierst Du zu Fuß, dann mit instr rausfinden, ob ein / vorhanden ist und dann abschneiden.

    Z.B. (ungetestet hingeschmiert)

    Visual Basic-Quellcode

    1. if instr(1,quelle,"/")>0 and instr(1,quelle,"/")<len(quelle) then
    2. ziel=trim(mid$(quelle,instr(1,quelle,"/")+1))
    3. else
    4. ziel=quelle
    5. endif


    instr kann auch Textvergleiche anstellen, dazu

    Visual Basic-Quellcode

    1. instr(1,quelle,"/",,vbtextcompare)
    oder so eingeben. Die genaue Anzahl der Kommata habe ich gerade nicht im Kopf, siehst Du aber anhand der Vorschläge der IDE beim eingeben. Ohne diese Angabe sind es, glaub ich, binäre Vergleiche, was beim Schrägstrich jetzt nicht soo stören sollte.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Select und Selection sollte, wo immer möglich, vermieden werden. Klick einfach mal während des Makrolaufs bissel im Excel-Fenster rum, dann weißt Du, wieso.

    Wenn viele Zellen kopiert werden, wird mein Code schneller, wenn man instr nur einmal aufruft und den Wert in einer Variablen zwischenspeichert.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Also lieber so?

    Visual Basic-Quellcode

    1. Auswahl = Range(Spalte & Zeile & ":" & Spalte & Zeile).Value
    2. Abgeschnitten = Right(Auswahl, Len(Auswahl) - InStr(1, Auswahl, "/") - 1)


    Und wie meinst du das mit instr nur einmal aufrufen und den Wert zwischenspeichern?

    Es wird bei mir jedes mal von einer anderen Datei kopiert, diese wieder geschlossen, usw.

    Also AutoIT exportiert von einem Programm eine Datei mit immer gleichem Namen und spielt das Makro bei Excel ab. Dieses öffnet die Datei, kopiert dann einige Sachen in eine Excel-Datei, in die alles hinkommt, und schließt die Datei dann wieder.

    Also eigentlich ist es schnell genug, weil das Excel Makro quasi alle Zeit der Welt hat :D

    Edit: Bin irgendwie davon ab, worauf ich hinaus wollte^^ Nämlich eig darauf: instr hat immer einen anderen Wert bei mir, daher wäre das irgendwie sinnlos, dafür extra eine Variable zu machen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „P1xelfehler“ ()

    Bei meinem Beispiel 'guckt' er dreimal nach, ob ein Schrägstrich vorkommt. Dafür geht er jedesmal intern den ganzen String durch, was dreimal soviel Zeit benötigt wie einmal gucken. In einer Variablen zwischengespeichert geht das bei vielen Zeilen schneller.
    Gruß
    Peterfido

    Keine Unterstützung per PN!