Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Autmatisch Ordner erstellen
#1
Hallo liebes Forum,

gleich Vorweg bin kein Excel-Experte. Trotzdem habe ich es zusammengebracht das ich aus dem Excel automatisiert Ordner erstellen kann z.B. Ordernname (Zeile 1 + Zeile2).
Leider funktioniert es bei mir nicht wenn ich auf die entsprechende Spalte klicke das sich der Ordner öffnet...

Hier mein Code:

Option Explicit
Private Const basisPfad As String = "\\Pfad\"
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim fso
    Dim pNr As String
    Dim pName As String
    Dim pbzl As String
    Dim folderName As String
   
    On Error GoTo fehler
   
    If Target.Cells.Count > 3 Then Exit Sub
    If Target.Row > 4 And Target.Column = 3 Or Target.Column = 4 Then
        pNr = Me.Cells(Target.Row, "C").Text
        pbzl = Me.Cells(Target.Row, "B").Text
        pName = Me.Cells(Target.Row, "D").Text
        If pNr <> "" And pName <> "" Then
            Set fso = CreateObject("Scripting.FileSystemObject")
            folderName = basisPfad & UCase(Left(pbzl, 2)) & "\"
            If Not fso.FolderExists(folderName) Then fso.createFolder folderName
            folderName = folderName & pNr & " " & pName & "\"
            If Not fso.FolderExists(folderName) Then fso.createFolder folderName
        End If
    End If
    Exit Sub
   
fehler:
    MsgBox "Fehler: " & Err.Description
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim wsh
    Dim pNr As String
    Dim pName As String
    Dim pbzl As String
    Dim folderName As String
   
    If Target.Column < 3 Then
        pNr = Me.Cells(Target.Row, "C").Text
        pName = Me.Cells(Target.Row, "D").Text
        Set wsh = CreateObject("WScript.Shell")
        folderName = basisPfad & UCase(Left(pbzl, 2)) & "\" & pNr & " " & pName & "\"
        wsh.Run """" & folderName & """"
    End If
End Sub




Es kommt dann diese Fehlermeldung:

Laufzeitfehler: -2147024894 ( 80070002)
Die Methode 'Run' für das Objekt IWshSehll3 ist fehlgeschlagen.

Ich hoffe mir kann jemand weiterhelfen...
Zitieren
#2
Hallo -skojo

also bei läuft das Makro einwandfrei durch
Zitieren
#3
(14.07.2020, 15:36)thowe schrieb: Hallo -skojo

also bei läuft das Makro einwandfrei durch


Bei mir leider nicht... Sad
Zitieren
#4
Hi,

das WScript.Shell-Object brauchst Du in Deinem Fall nicht instanzieren.

Versuche anstelle:
Code:
Shell "Explorer.exe " & pfad, vbNormalFocus
gruß
Marco
Zitieren
#5
(20.07.2020, 16:28)Mase schrieb: Hi,

das WScript.Shell-Object brauchst Du in Deinem Fall nicht instanzieren.

Versuche anstelle:
Code:
Shell "Explorer.exe " & pfad, vbNormalFocus

Hallo Marco,

danke. Aber wo füge ich das ein? 

Shell "Explorer.exe " & pfad, vbNormalFocus

LG
Zitieren
#6
Anstelle:
Code:
wsh.Run """" & folderName & """"

Zusammengefasst also so:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Dim pNr As String
    Dim pName As String
    Dim pbzl As String
    Dim folderName As String
  
    If Target.Column < 3 Then
        pNr = Me.Cells(Target.Row, "C").Text
        pName = Me.Cells(Target.Row, "D").Text
      
        folderName = basisPfad & UCase(Left(pbzl, 2)) & "\" & pNr & " " & pName & "\"
        Shell "Explorer.exe " & folderName, vbNormalFocus
    End If
End Sub
gruß
Marco
Zitieren


Gehe zu:


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




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions