Thema Datum  Von Nutzer Rating
Antwort
11.02.2019 10:02:47 Younes Ouis
NotSolved
11.02.2019 11:01:04 Gast52198
NotSolved
11.02.2019 13:55:06 Gast54476
NotSolved
11.02.2019 11:03:38 Gast21224
NotSolved
11.02.2019 11:07:36 Gast2918
NotSolved
11.02.2019 13:50:30 Gast78184
NotSolved
12.02.2019 04:35:47 Gast21224
NotSolved
11.02.2019 13:58:53 Gast12595
NotSolved
11.02.2019 14:00:40 Gast76002
NotSolved
Blau ein anderer Versuch
11.02.2019 15:46:27 Ulrich
NotSolved
11.02.2019 17:01:38 Gast65786
NotSolved
11.02.2019 23:01:15 Ulrich
NotSolved
11.02.2019 17:21:55 Gast3333
NotSolved
11.02.2019 19:17:22 Ulrich
NotSolved
11.02.2019 19:19:35 Gast3333
NotSolved
12.02.2019 08:58:57 Younes Ouis
Solved
12.02.2019 09:00:41 Younes Ouis
NotSolved
11.02.2019 20:37:13 Younes Ouis
NotSolved
11.02.2019 21:34:24 Gast3333
NotSolved
11.02.2019 21:58:12 Gast3333
NotSolved
12.02.2019 04:25:27 Gast21224
NotSolved
12.02.2019 06:22:55 Gast01233
NotSolved

Ansicht des Beitrags:
Von:
Ulrich
Datum:
11.02.2019 15:46:27
Views:
524
Rating: Antwort:
  Ja
Thema:
ein anderer Versuch

Hallo,

mir scheint, als ob du hier zwei Codeschnipsel aneinander gefügt hast, die nichts miteinander zu tun haben (sollten).

 

Es ist auch stark davon abhängig, was du in die Inputbox eingibst. Ich gehe mal vom Default aus, also

*.xls*

. Mir steht gerade kein Excel zur Verfügung, doch ich versuche es trotzdem einmal:

 

Hiermit

 sn = Split(CreateObject("wscript.shell").exec("cmd /c Dir """ & f & ibox & """ /s /a /b").stdout.readall, vbCrLf)
 Sheets(1).Cells(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
 

werden Dateinamen inklusive Pfad in die erste Spallte eingetragen, z.B. "c:\test\test\Datei.xlsx"

Nun folgt

    strPath = ThisWorkbook.Worksheets(1).Cells(i, 1) '  <--Enter Path here
    strExt = "*.xlsx" ' <-- Enter Data Type you want to open

die Variable strPath hat also jetzt den Inhalt "c:\test\test\Datei.xlsx". Es folgt der Aufruf

        strFile = Dir(strPath & strExt)

dabei ergibt strPath & strExt "c:\test\test\Datei.xlsx*.xlsx". Diese Datei existiert nicht, daher gibt Dir("c:\test\test\Datei.xlsx*.xlsx") einen leeren String zurück.

Und das funktioniert nunmal nicht. Daher mein ungetesteter Vorschlag:

Sub Mehrere_Dateien_einlesen()
Dim strFile As String
Dim i As Long
Dim fldr As FileDialog

'Opens All Subfolders and lists them in the Activeworksheet
 Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
 fldr.Show
 f = fldr.SelectedItems(1)
 f = f & "\"
 ibox = "*.xls*"    'InputBox("File Must Contain (Note * wildcards can be used) ", , "*.xls*")
 On Error resume next
 sn = Split(CreateObject("wscript.shell").exec("cmd /c Dir """ & f & ibox & """ /s /a /b").stdout.readall, vbCrLf)
' Sheets(1).Cells(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)     'write Path- and Filenames to worksheet
 on error goto 0
    
    
For i = 0 To ubound(sn)-1   'Schleife über alle Dateinamen in sn    
    strFile = sn(i)         'Dateiname
    
    with Workbooks.Open(Filename:=strFile) ' Opens File

        If BlattExist(.sheets(1).parent, "Beutel(bag)") Then ' <-- Enter the Worksheet that includes the Data
            
            .Worksheets("Beutel(bag)").Range("B73,F73:I73,B90,F90:I90,B91,F91:I91").Copy '<-- Enter Cells that include the Data            

            sBlattName = left(dir(strFile), 31)             'Sheetname = Filename (if Name exceeds 31 Characters, it will be shortened)

            MsgBox "Found Data copying will be done"

            ThisWorkbook.Worksheets.Add().Name = sBlattName
'            ThisWorkbook.Worksheets.Add.Name = sBlattName   <= ich glaube, dass dies falsch ist, evtl. diese statt vorheriger Zeile benutzen
            ThisWorkbook.Worksheets(sBlattName).Range("A1").PasteSpecial Paste:=xlValues
            Application.CutCopyMode = False 'deletes the copy buffer


        Else
            MsgBox "File doesnt include Worksheet ""Beutel(bag)"""
        End If


    .close False        'Datei schließen

next

End Sub

'Function of checking the existance of a Worksheet
Function BlattExist(wb as workbook, strBlatt As String) As Boolean
Dim shDummy

   On Error Resume Next: Err.Clear
   Set shDummy = wb.Sheets(strBlatt)
   If Err.Number = 0 Then
      BlattExist = True
   End If
End Function

wie gesagt: ungetestet! Funktioniert es?

Grüße, Ulrich


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
11.02.2019 10:02:47 Younes Ouis
NotSolved
11.02.2019 11:01:04 Gast52198
NotSolved
11.02.2019 13:55:06 Gast54476
NotSolved
11.02.2019 11:03:38 Gast21224
NotSolved
11.02.2019 11:07:36 Gast2918
NotSolved
11.02.2019 13:50:30 Gast78184
NotSolved
12.02.2019 04:35:47 Gast21224
NotSolved
11.02.2019 13:58:53 Gast12595
NotSolved
11.02.2019 14:00:40 Gast76002
NotSolved
Blau ein anderer Versuch
11.02.2019 15:46:27 Ulrich
NotSolved
11.02.2019 17:01:38 Gast65786
NotSolved
11.02.2019 23:01:15 Ulrich
NotSolved
11.02.2019 17:21:55 Gast3333
NotSolved
11.02.2019 19:17:22 Ulrich
NotSolved
11.02.2019 19:19:35 Gast3333
NotSolved
12.02.2019 08:58:57 Younes Ouis
Solved
12.02.2019 09:00:41 Younes Ouis
NotSolved
11.02.2019 20:37:13 Younes Ouis
NotSolved
11.02.2019 21:34:24 Gast3333
NotSolved
11.02.2019 21:58:12 Gast3333
NotSolved
12.02.2019 04:25:27 Gast21224
NotSolved
12.02.2019 06:22:55 Gast01233
NotSolved