Office: (Office 2013) Problem bei einer Array Erstellung

Helfe beim Thema Problem bei einer Array Erstellung in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe mal eine Frage zu Arrays. Mein Ziel ist es ein eindimensionales Array, also eine Liste, mit verschiedenen Dateipfaden zu... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Tauchmann, 13. März 2016.

  1. Tauchmann Erfahrener User

    Problem bei einer Array Erstellung


    Hallo zusammen,

    ich habe mal eine Frage zu Arrays.
    Mein Ziel ist es ein eindimensionales Array, also eine Liste, mit verschiedenen Dateipfaden zu befüllen, damit dieses Array durch ein anderes Makro weiterverarbeitet werden kann.

    Was das Makro macht bzw machen soll:

    1. Bestimmen der xlsb Dateien in einem bestimmten Ordner mit Unterordnern
    2. Diesen ermittelten Count dem Array mit ReDim zuweisen, damit die Obergrenze festgelegt wird.
    3. Befüllen der des Arrays mit Dateipfaden.

    Mein Problem ist das der Array einfach nicht funktionieren will und immer die Fehlermeldung „Index außerhalb des gültigen Bereiches“ erscheint (die Problemstelle habe ich mal Fett markiert).

    Habt Ihr eine Idee was da schief läuft?

    SG
    Tauchmann

    Code:
    Public strFilePathArray() As String
     
    Public Function RelevantFilesPathesOrCount()  
        Dim strFolderPath As String
        Dim lngFileCount As Long
        Dim lngDummy As Long
        Dim i As Long
     
        strFolderPath = "C:\Test"
       
        lngFileCount = 0
        lngFileCount = GoThroughSubFolder(strFolderPath, lngFileCount, "Count")
        lngDummy = GoThroughSubFolder(strFolderPath, lngFileCount, "Array")
       
        lngDummy = UBound(strFilePathArray)
        Erase strFilePathArray
    End Function
     
    Public Function GoThroughSubFolder(ByVal strFolderPath As String, lngFileCount As Long, strWhat As String) As Long
        Dim objFSO As Object
        Dim objFolder As Object
        Dim objSubFolder As Object
        Dim objFile As Object
        Dim i As Long
       
        Erase strFilePathArray
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        Set objFolder = objFSO.getfolder(strFolderPath)
       
        Select Case strWhat
            Case Is = "Array"
                ReDim strFilePathArray(lngFileCount)
        End Select
       
        For Each objSubFolder In objFolder.subfolders
    'Alle Dateien durchlaufen
            For Each objFile In objSubFolder.Files
                If LCase(objFSO.getextensionname(objFile)) = "xlsb" Then
                    Select Case strWhat
                        Case Is = "Count"
                            lngFileCount = lngFileCount + 1
                        Case Is = "Array"
                            For i = 1 To lngFileCount
                                [B]strFilePathArray(i) = objFile.Path[/B]
                            Next i
                    End Select
                End If
            Next objFile
           
    'Alle Unterverzeichnisse durchlaufen (rekursiv)
        Call GoThroughSubFolder(objSubFolder.Path, lngFileCount, strWhat)
        Next objSubFolder
       
        GoThroughSubFolder = lngFileCount
        Erase strFilePathArray
        Set objFSO = Nothing
        Set objFile = Nothing
        Set objFolder = Nothing
        Set objSubFolder = Nothing
    End Function
    
     
    Zuletzt bearbeitet: 13. März 2016
    Tauchmann, 13. März 2016
    #1
  2. Tauchmann Erfahrener User
    Hallo,

    ich glaube ich habe vielleicht das Problem gefunden.
    Muss noch rumprobieren.

    SG
    Tauchmann
     
    Tauchmann, 13. März 2016
    #2
  3. Tauchmann Erfahrener User
    Ohhhhh man , da habe ich mir selbst ein ziemlich großes OsterEI gelegt.
    Naja, man sollte nicht spät Abends programieren :)
    Habe das Problem gefunden.

    SG
    Tauchmann
     
    Tauchmann, 13. März 2016
    #3
  4. Beverly
    Beverly Erfahrener User

    Problem bei einer Array Erstellung

    Hi,

    da du deinen korrigierten Code offensichtlich geheim halten möchstest Problem bei einer Array Erstellung :rolleyes:;), hier mal meine Lösung, falls andere User ein ähnliches Vorhaben realisieren möchten und nach einer Lösung suchen:

    Code:
    Option Explicit
    Dim arrMappen()
    Dim lngZaehler As Long
    
    Sub Kopieren()
       OrdnerAuswahl "I:\Dokumente\"
       ' alle gefundenen Arbeitsmappen mit Pfad ausgeben
       Range("A1").Resize(UBound(arrMappen()) + 1, 1) = Application.Transpose(arrMappen())
    End Sub
    
    Sub OrdnerAuswahl(varSuchordner)
       Dim fso As Object
       Dim Ordner
       Dim UnterOrdner
       Dim strMappe As String
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set Ordner = fso.getfolder(varSuchordner)
       Application.ScreenUpdating = False
       For Each UnterOrdner In Ordner.subfolders
          ' 1. Mappe des Unterordners auf die Variable schreiben
          ' Variable ist leer wenn im Unterordner keine Arbeitsmappe vorhanden
          strMappe = Dir(UnterOrdner & "\*.xlsb")
          ' Schleife über alle Arbeitsmappen des Unterordners
          Do While strMappe <> ""
            ReDim Preserve arrMappen(0 To lngZaehler)
            arrMappen(lngZaehler) = UnterOrdner & "\" & strMappe
            lngZaehler = lngZaehler + 1
            strMappe = Dir
          Loop
          OrdnerAuswahl UnterOrdner
       Next
       Application.ScreenUpdating = True
       Set fso = Nothing
       Set Ordner = Nothing
    End Sub
    
    
    
    
    Bis später,
    Karin
     
    Beverly, 13. März 2016
    #4
Thema:

Problem bei einer Array Erstellung

Die Seite wird geladen...
  1. Problem bei einer Array Erstellung - Similar Threads - Problem Array Erstellung

  2. Data Transform, Problem with delimiter

    in Microsoft Excel Hilfe
    Data Transform, Problem with delimiter: Hello Community, I encounter one problem with excel. When I export table from csv I have a delimiter semicolon, but it doesn't work. I found solution. If I would go to Power Query Editor - Split...
  3. Problem Datenstruktur Mitglieds-Datenbank

    in Microsoft Access Hilfe
    Problem Datenstruktur Mitglieds-Datenbank: Hallo Leute, Ich habe eine Frage zu einer Vereins-Mitglieder-Datenbank, die ich erstelle. Die Vereinsmitglieder sind in einer Tabelle erfasst, also Nachname, Vorname, usw. Und es gibt einen...
  4. Seltsames Problem beim Sortieren

    in Microsoft Excel Hilfe
    Seltsames Problem beim Sortieren: Hallo! :) Ich wollte in Microsoft Excel folgende Auflistung so sortieren, dass die Werte neben den Jahreszahlen absteigend aufgelistet werden, die Jahre mit den höchsten Zahlen oben stehen:...
  5. Problem mit verschachtelter WENN Formel

    in Microsoft Excel Hilfe
    Problem mit verschachtelter WENN Formel: HiHo Ich habe ein Problem mit einer verschachtelten WENN Formel. Zur Erläuterung: D11 ist ein Hover, bei dem für die Abfrage "Arbeitstag" und "Zeitausgleich" relevant sind. C11 ist ein Datum. Es...
  6. Problem Formel

    in Microsoft Excel Hilfe
    Problem Formel: Hallo zusammen, ich benötige dringend Hilfe bei einer Formel. Scheinbar habe ich ein Brett vorm Kopf. Es wäre super nett wenn mir jemand helfen kann. Die Formel soll über ein Datum laufen. Ich...
  7. Problem mit Public array

    in Microsoft Excel Hilfe
    Problem mit Public array: Hallo Forum, ich habe das Problem mit der deklaration eines globalen Arrays. Leider bin ich im Forum nicht direkt fündig gewurden. Ich möchte ein Array global definieren, welches in einer...
  8. Schleife für Array Problem mit Textbox-Bezeichnung

    in Microsoft Excel Hilfe
    Schleife für Array Problem mit Textbox-Bezeichnung: Hallo miteinander, Heute ist mein Problem von geringerer Natur. Dank des Forums bin ich in den letzten Wochen mit meinem kleinen Projekt gut vorangekommen. Jetzt würde ich aber doch gerne noch...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden