Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Teil des Pfades links per VBA

Teil des Pfades links per VBA
18.08.2018 00:02:47
Sergej
Hallo Leute,
wie kann ich von dem Pfad T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\Vertrag... nur den linken Teil bis zum dritten Backslash per VBA bekommen?
Ergebnis: T:\Projekte\Service\
Schönen Gruß,
Sergej

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teil des Pfades links per VBA
18.08.2018 07:14:19
Luschi
Hallo Sergej,
hier mal mein Versuch: Sub MachEs() Dim sPfad1 As String, sPfad2 As String, _ i1 As Integer, i2 As Integer, i3 As Integer sPfad1 = "T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\Vertrag..." i2 = 0: i3 = 3 For i1 = 1 To i3 i2 = BacksLash_Suche(sPfad1, i2) 'Debug.Print i2 Next i1 sPfad2 = Left(sPfad1, i2) Debug.Print sPfad1 Debug.Print sPfad2 End Sub Function BacksLash_Suche(sPfad As String, iPos As Integer) As Integer BacksLash_Suche = InStr(iPos + 1, sPfad, "\", vbTextCompare) End Function Gruß von Luschi
aus klein-Paris
Daten Text in Spalten (ohne VBA)
18.08.2018 07:39:47
Matthias
Hallo
Alles was nach Service steht überspringen.
Userbild
und wieder mit "\" zusammenfügen
oder per Formelkonstrukt: (Dein Wunschergebnis steht hier in A21) einfach den BackSlash wieder anhängen
Tabelle1

 AB
9T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\Vertrag\
10Vertrag 
11  
12T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\
13Arcaden Düsselorf 
14  
15T:\Projekte\Service\Düsseldorf\2018\
162018 
17  
18T:\Projekte\Service\Düsseldorf\
19Düsseldorf 
20  
21T:\Projekte\Service\
22Service 
23  
24T:\Projekte\
25Projekte 
26  
27T:\\

Formeln der Tabelle
ZelleFormel
A10=RECHTS(A9;LÄNGE(A9)-VERWEIS(999;FINDEN(B9;A9;ZEILE(A:A))))
A12=LINKS(WECHSELN(A9;A10;"");LÄNGE(WECHSELN(A9;A10;""))-1)
A13=RECHTS(A12;LÄNGE(A12)-VERWEIS(999;FINDEN(B12;A12;ZEILE(A:A))))
A15=LINKS(WECHSELN(A12;A13;"");LÄNGE(WECHSELN(A12;A13;""))-1)
A16=RECHTS(A15;LÄNGE(A15)-VERWEIS(999;FINDEN(B15;A15;ZEILE(A:A))))
A18=LINKS(WECHSELN(A15;A16;"");LÄNGE(WECHSELN(A15;A16;""))-1)
A19=RECHTS(A18;LÄNGE(A18)-VERWEIS(999;FINDEN(B18;A18;ZEILE(A:A))))
A21=LINKS(WECHSELN(A18;A19;"");LÄNGE(WECHSELN(A18;A19;""))-1)
A22=RECHTS(A21;LÄNGE(A21)-VERWEIS(999;FINDEN(B21;A21;ZEILE(A:A))))
A24=LINKS(WECHSELN(A21;A22;"");LÄNGE(WECHSELN(A21;A22;""))-1)
A25=RECHTS(A24;LÄNGE(A24)-VERWEIS(999;FINDEN(B24;A24;ZEILE(A:A))))
A27=LINKS(A24;FINDEN("\";A24))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: Teil des Pfades links per VBA
18.08.2018 07:56:42
Sepp
Hallo Sergej,
Tabelle1

 ABC
1T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\Vertrag T:\Projekte\Service
2   

Formeln der Tabelle
ZelleFormel
C1=LINKS(WECHSELN(A1;"\";"#";3); FINDEN("#";WECHSELN(A1;"\";"#";3))-1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
 ABCDEF
1Gruß Sepp
2
3

Anzeige
Chapeau ... owT
18.08.2018 08:05:45
Matthias
Und per VBA
18.08.2018 08:09:29
Sepp
Hallo nochmal,
Sub sergej()
  Const cstrText As String = "T:\Projekte\Service\Düsseldorf\2018\Arcaden Düsselorf\Vertrag"
  Dim strRet As String, a As Variant

  a = Split(cstrText, "\")
  Redim Preserve a(2)
  strRet = Join(a, "\")

  MsgBox strRet
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: gute Antworten
18.08.2018 08:58:15
Fennek
Hallo,
bei diesen sehr kreativen Antworten möchte ich noch eine Variante ergänzen:
Der Befehl "=Wechseln" ermöglich als letzten Parameter, das wievielte Zeichen gewechselt werden soll.
ungeprüft

Teil = split(replace(Pfad, "\","\#",3), "#")(0)
mfg
AW: gute Antworten
18.08.2018 11:52:55
Sergej
Sehr interessante Antworten, die funktionieren.
Vielen Dank an Alle!
Schönen Gruß,
Sergej
Nun, nicht alle fktionieren, ...
18.08.2018 21:29:32
Luc:-?
Sergej,
so die vorhergehende von Fennek! ;-]
Ja, Fennek,
die vbFkt Replace entspricht nicht der Xl-Fkt WECHSELN, sondern eher der Xl-Fkt ERSETZEN, wenn auch nicht ganz, denn ihr 4.Argument bezeichnet die TextPosition, bei der mit der Suche begonnen wird und die auch die 1.wiedergegebene ist (Text davor entfällt ganz!). Ihr 5.Argument gibt die Anzahl der (aufeinander­folgenden) SuchTexte (im Textteil lt Arg4) an, die durch den neuen Text ersetzt wdn sollen. Deshalb müsste die Zeile so aussehen (bei Test mit EreignisProz Wsh_SelectionChange):
Target = Split(Replace(Replace(Target, "\", "\#"), "\#", "\", , 2), "#")(0)
Man käme aber auch ohne die vbFkt Split aus, bspw so …
Target = Replace(Target, Replace(Target, "\", "\", InStr(InStr(InStr(Target, "\") + 1, Target, "\") + 1, Target, "\") + 1), "")
…oder so …
Target = Left(Target, 1, InStr(InStr(InStr(Target, "\") + 1, Target, "\") + 1, Target, "\"))
So wie „ungeprüft“ gedacht, fktioniert's nur so:
Target = Split(WorksheetFunction.Substitute(Target, "\", "\#", 3), "#")(0)
Dazu passen dann folgende Fml-Lösungen:
=LINKS(A1;SUCHEN("\";A1;SUCHEN("\";A1;SUCHEN("\";A1)+1)+1))
=ERSETZEN(A1;SUCHEN("\";A1;SUCHEN("\";A1;SUCHEN("\";A1)+1)+1)+1;LÄNGE(A1);"")
Oder mit UDF auch diese singulare MatrixFml: {=PickOn(A1;ZEILE(1:3);"\")&"\"}
Aber es sind natürlich auch Lösungen mit UDFs auf der Basis der vbFkt Split möglich:
=Splint(WECHSELN(A1;"\";"\#";3);"#";1;1) und =VJoin(Splint(A1;"\";1;3); "\") &"\"
Letztere UDF-Kombi ist so universell, dass man damit auch andere ähnliche Probleme lösen könnte, für den VorgabeText (in A1) bspw so:
Düsseldorf 2018 ⇐=VJoin(Splint(A1;"\";4;5))
Arcaden Düsseldorf ⇐=Splint(A1;"\";6;6)
Verwendete UDFs:
PickOn (Vs1.1) https://www.herber.de/forum/archiv/1140to1144/1141994_Teilstring_aus_String_entfernen.html#1142025 (Folgebeiträge m.Korr beachten!)
Splint (Vs1.2) https://www.herber.de/forum/archiv/1584to1588/t1584372.htm#1584465
VJoin (Vs1.4) https://www.herber.de/bbs/user/99024.xlsm (BspDatei m.UDFs)

Feedback nicht unerwünscht! Gruß + schöSo, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige