• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opgelost Bestanden inlezen

Dit topic is als opgelost gemarkeerd

Schelledraad

Gebruiker
Lid geworden
11 feb 2014
Berichten
112
Ik heb de navolgende code

Cel CR1 is variabel ( .CSV, .XLS, . XLSB, .XLSM, .XLSX
Code:
Sub DataBestandenHalen()
Dim AntWrd As Variant
Dim mTmp As Variant
Dim sMp As String
Dim MyNumber
    sMp = ThisWorkbook.Path & Application.PathSeparator
    
    'bestandsnamen ophalen in dezelfde map
    ReDim mTmp(1 To 1)
    AntWrd = Dir(sMp & "*" & [cr1])
    Do Until AntWrd = ""
        If AntWrd <> ThisWorkbook.Name Then
            If mTmp(UBound(mTmp)) <> "" Then
                ReDim Preserve mTmp(1 To UBound(mTmp) + 1)
            End If
            mTmp(UBound(mTmp)) = AntWrd
        End If
        AntWrd = Dir
    Loop
)
Dat werkt prima, alleen als ik .XLS kies worden ook de bestanden met extentie X, B en M opgehaald.
Is dit te verhelpen ?
 
Die punt staat ook daadwerkelijk bij de waarde in CR1?
Geen probleem hier.
Plaats anders een voorbeeld documentje.
 
Laatst bewerkt:
Geen probleem hier.
Plaats dan een voorbeeld documentje.
 
Ook met dat bestand geen enkel probleem.
Alleen de gekozen extensie wordt gebruikt.
Geen idee waarom het bij jou een probleem geeft.
 
Het probleem doet zich bij mij ook voor.
Veranderen in:
Code:
ReDim mTmp(1 To 1)
    AntWrd = Dir(sMp & "*")
    Do Until AntWrd = ""
    If UCase(CreateObject("Scripting.FileSystemObject").GetExtensionName(AntWrd)) = Replace([cr1], ".", "") Then
        If AntWrd <> ThisWorkbook.Name Then
            If mTmp(UBound(mTmp)) <> "" Then
                ReDim Preserve mTmp(1 To UBound(mTmp) + 1)
            End If
            mTmp(UBound(mTmp)) = AntWrd
        End If
   End If
        AntWrd = Dir
    Loop
 
Terug
Bovenaan Onderaan