Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Ordnerpfadanalyse


Betrifft: Ordnerpfadanalyse von: Klaus
Geschrieben am: 02.10.2019 11:03:57

Hallo Gemeinde,

nehmen wir mal an ich habe folgenden Pfad:

K:\Test\2500-2599\2588_[Variabel]\Test\Test.xlsm

Wie kann ich die den Wert in der eckigen Klammer auslesen. Folgenden Code habe ich aktuell geschrieben.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Target.Column = 2 Then
    If Target <> "" Then
        'Variablendefinition

        PfadA = "K:\TEST\"
        PfadB = Mid(Target, 4, 2) & "00-" & Mid(Target, 4, 2) & "99\"
        PfadC = "2588_" & [Variabel]     '[Variabel] möchte iwie erfassen
  
        PfadD = "\TEST\TEST_" & Target
        Ext = ".xlsm"

        Gpfad = PfadA & PfadB & PfadC & PfadD & Ext

        ActiveWorkbook.FollowHyperlink Gpfad 

  End IF
  End If

End Sub

  

Betrifft: AW: Ordnerpfadanalyse von: Daniel
Geschrieben am: 02.10.2019 11:11:47

Hi

im Prinzip so:

PfadC = Dir(PfadA & PfadB &"2588_*", vbDirectory)
Gruß Daniel


  

Betrifft: das ist noch besser!...owT von: Oberschlumpf
Geschrieben am: 02.10.2019 11:12:35




  

Betrifft: AW: Ordnerpfadanalyse von: Oberschlumpf
Geschrieben am: 02.10.2019 11:11:58

Hi Klaus,

teste mal dieses Makro für sich alleine:

Sub test()

Dim lstrPath As String, lstrSplit() As String

lstrPath = "K:\Test\2500-2599\2588_[Variabel]\Test\Test.xlsm"
lstrSplit = Split(lstrPath, "\")
MsgBox Right(lstrSplit(3), Len(lstrSplit(3)) - 5)

End Sub

Hilft das dir weiter?

Ciao
Thorsten


  

Betrifft: AW: so? von: Fennek
Geschrieben am: 02.10.2019 11:12:54

Hallo,

ich habe das so verstanden:

const Pfad as string = "K:\Test\2500-2599\2588_[Variabel]\Test\Test.xlsm"

sub Variabel()

Var = split(split(Pfad, "_")(1), "\")(0)
msgbox Var

end sub
mfg


  

Betrifft: AW: Ordnerpfadanalyse von: Klaus
Geschrieben am: 02.10.2019 12:19:54

Vielen Dank für eure zahlreichen Threads.

die erste Antwort von Daniel hat mir schon gereicht ;)

Dennoch geht ein Dank an alle, die sich bemüht haben !

So sieht der Code jetzt aus und funktioniert tiptop:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    '?ffnen der Zeichnung
    If Target.Column = 2 Then
    If Target <> "" Then
        'Variablendefinition

        PfadA = "\\XXX\XXX\XXX\XXX\"
        PfadB = Mid(Target, 4, 2) & "00-" & Mid(Target, 4, 2) & "99\"
        PfadC = Dir(PfadA & PfadB & Target & " *", vbDirectory)
        PfadD = "\XXX\XXX " & Mid(Target, 2, 6)
        Ext = ".xlsm"

        Gpfad = PfadA & PfadB & PfadC & PfadD & Ext
        
        If Dir(Gpfad, vbDirectory) <> "" Then
            If Dir(Gpfad) <> "" Then
            
                ActiveWorkbook.FollowHyperlink Gpfad
           Else
                MsgBox Gpfad & " NICHT gefunden", vbCritical
            End If
        Else
            MsgBox "Pfad nicht gefunden", vbCritical
        End If
    End If
    End If
End Sub