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. Outlook Problem

    in Microsoft Outlook Hilfe
    Outlook Problem: Hallo zusammen, ich brauche Hilfe bei folgendem Problem. Ich bekomme pro Woche ca. 44 Mails vom immer gleichen Absender, no-reply@deutschepost.de mit immer dem gleichen PDF-Anhang. Die...
  3. Problem bei Fußnote

    in Microsoft Word Hilfe
    Problem bei Fußnote: Hallo zusammen, habe folgendes Problem. Sobald ich eine Fußnote einfüge, erscheint automatisch am Ende der Seite eine Art Überschrift mit der Zahl 1. Hier der Screenshot. Habe schon alles...
  4. Excel found a problem with one or more formula references in this worksheet

    in Microsoft Excel Hilfe
    Excel found a problem with one or more formula references in this worksheet: Liebes Forum, ich habe ein Problem, das viel durch das Internet geistert, aber nirgendwo gibt es eine erfolgreiche Lösung für: "Excel found a problem with one or more formula references in this...
  5. Zählenwenns Problem

    in Microsoft Excel Hilfe
    Zählenwenns Problem: Hallo. Ich möchte zählen wie oft der Name Person 2 vorkommt aber nur dann wenn darüber ein anderer Name steht. Also in C3 sollte 5 mal stehen aber in C4 nichts bzw. 0 Dann in C8 die 2 und in C9...
  6. Problem mit Seitenzahlen/Seitenbeschriftung

    in Microsoft Word Hilfe
    Problem mit Seitenzahlen/Seitenbeschriftung: Hallo, ich schreibe gerade meine Masterarbeit und habe ein kurioses Problem, bei dem ich nicht weiterkomme. Ich habe eine "beidseitige" Vorlage für die Masterarbeit der Universität verwendet. Da...
  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