VBA Ordner Öffnen
#1
Hallo 

Ich will einen Ordner im ":P Laufwerk" Öffnen und das soll so ablaufen
ich habe in Spalte "A = 8500024." in Spalte "C = München" in Spalte "E = Röntgenstr.6"
So sind die Namen von Ordner im "Laufwerk :P"  "A"_"C","E" ("8500024._München,Röntgenstr.6")

ich will wenn ich auf eine Zelle in Spalte "A" Doppelklick mache das er mir im "Laufwerk :P" Ordner nur nach den Namen Von Spalte "A" Sucht nicht den ganzen namen heiß 8500024. und den natürlich öffnet.

Danke

ich habe mit diesem Code Probiert

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Es muß ein Verweis auf das "Windows Script Host Objekt Model" gesetzt sein
'Der Pfad muß den Computernamen oder die IP des Computers mit der Freigabe enthalten
Const PFAD As String = "P:\Daten\B053071_ERIK HÖCHST\Baustellen\"
Dim StrOrdner As String
StrOrdner = Dir(PFAD, vbDirectory)
Do
    If StrOrdner = "" Then
        MsgBox "Verzeichnis nicht gefunden", vbCritical + vbOKOnly,
        GoTo Raushier 'Verzeichnis komplett durchsucht>>raushier
    End If
    If InStr(1, StrOrdner, Target.EntireRow.Columns("A"), vbTextCompare) > 0 Then 'Nummer im Pfad?
        Exit Do ' Ja>>Schleife abbrechen
    End If 'Nein >> nächste Verzeichnis im Ordner
    StrOrdner = Dir
Loop
StrOrdner = PFAD & StrOrdner
Shell "Explorer.exe " & StrOrdner, vbNormalFocus
Raushier:

End Sub
Top
#2
Hallo,

das hat sicher nicht funktioniert. Eine variable Angabe ist schon mal keine Constante …

Const PFAD As String = "P:\Daten\B053071_ERIK HÖCHST\Baustellen"

Dann also

Dim PFAD As String
PFAD = "P:\"& Cells(1,1) & Cells(1,3) & Cells(1,5)

wobei die Zeile sicher durch Target.Row zu ersetzen ist.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
du hast mich falch verstanden

"P:\Daten\B053071_ERIK HÖCHST\Baustellen\" das ist der Ordner wo sich Baustellen befinden.


und in spalte "A" sin die nummern. und wenn ich auf eine spalte Doppelklick machen dann soll er in den order nach den Nummer suchen und den Ordner aufmachen
Top
#4
Hallo,

vielleicht so:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  'Der Pfad muß den Computernamen oder die IP des Computers mit der Freigabe enthalten
  Const PFAD As String = "P:\Daten\B053071_ERIK HÖCHST\Baustellen\"
  Dim StrOrdner As String
  If Target.Column = 1 Then
    StrOrdner = Dir(PFAD & Target.Value & "*", vbDirectory)
    If StrOrdner = "" Then
      MsgBox "Verzeichnis nicht gefunden", vbCritical + vbOKOnly
    Else
      Shell "Explorer.exe " & PFAD & StrOrdner, vbNormalFocus
    End If
  End If
End Sub

Gruß Uwe
Top
#5
Danke hat geklappt 

ich hab jetzt ne frage kann ich das erweitern? weil jetzt sucht er beim Doppelklick in Spalte A,
kann ich jetzt sagen suche in Spalte B anderen Nummer mit anderen PFAD?

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  'Der Pfad muß den Computernamen oder die IP des Computers mit der Freigabe enthalten
  Dim PFAD As String
  Dim PFAD2 As String
  Dim StrOrdner As String
  PFAD = "P:\Daten\B053071_ERIK HÖCHST\Baustellen\"
  PFAD2 = "P:\Daten\Leistungsverzeichnisse-Mail\GAEB + Pläne\"
 
  If Target.Column = 1 Then
    StrOrdner = Dir(PFAD & Target.Value & "*", vbDirectory)
      Shell "Explorer.exe " & PFAD & StrOrdner, vbNormalFocus
     
      Else
    If Target.Column = 2 Then
        StrOrdner = Dir(PFAD2 & Target.Value & "*", vbDirectory)
      Shell "Explorer.exe " & PFAD2 & StrOrdner, vbNormalFocus
    End If
  End If
End Sub


so habe ich es gelöst und Funktioniert
Top
#6
ich habe jetzt denn nächsten Problem:

es sind 5 Sheets und der Code Oben Funktioniert bei 3 aber bei 2 nicht.. hab alles überprüft PFADs sind richtig aber irgendwie öffnet er ihm Explorer Dokumente???
Top
#7
ich weiß woran es liegt das er nicht alle Ordner öffnet aber ich kann es nicht lösen

wenn ein Ordner so heißt "830054_München Röntgenstr.6" dann Öffnet er denn aber wenn er so heißt "830054_München, Röntgenstr.6" mit kommer dann nicht... bitte helfen
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  'Der Pfad muß den Computernamen oder die IP des Computers mit der Freigabe enthalten
  Dim PFAD As String
  Dim PFAD2 As String
  Dim StrOrdner As String
  PFAD = "P:\Daten\B053071_ERIK HÖCHST\Baustellen\"
  PFAD2 = "P:\Daten\Leistungsverzeichnisse-Mail\GAEB + Pläne\"

  If Target.Column = 1 Then
    StrOrdner = Dir(PFAD & Target.Value & "*", vbDirectory)
      Shell "Explorer.exe " & PFAD & StrOrdner, vbNormalFocus
     
      Else
    If Target.Column = 2 Then
        StrOrdner = Dir(PFAD2 & Target.Value & "*", vbDirectory)
      Shell "Explorer.exe " & PFAD2 & StrOrdner, vbNormalFocus
    End If
  End If
End Sub
Top
#8
Hallöchen,

Shell "Explorer.exe """ & Pfad2 & strOrdner & "", vbNormalFocus
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#9
Hallo,

so sollte es klappen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Der Pfad muß den Computernamen oder die IP des Computers mit der Freigabe enthalten
Dim PFAD As String
Dim PFAD2 As String
Dim StrOrdner As String
PFAD = "P:\Daten\B053071_ERIK HÖCHST\Baustellen\"
PFAD2 = "P:\Daten\Leistungsverzeichnisse-Mail\GAEB + Pläne\"

If Target.Column = 1 Then
StrOrdner = Dir(PFAD & Target.Value & "*", vbDirectory)
Shell "Explorer.exe " & Chr(34) & PFAD & StrOrdner & Chr(34), vbNormalFocus

ElseIf Target.Column = 2 Then
StrOrdner = Dir(PFAD2 & Target.Value & "*", vbDirectory)
Shell "Explorer.exe " & Chr(34) & PFAD2 & StrOrdner & Chr(34), vbNormalFocus
End If
End Sub
Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste