Specifieke bestanden openen

Status
Niet open voor verdere reacties.

keecie

Gebruiker
Lid geworden
24 mrt 2009
Berichten
10
Hoi,

Hoe kan ik een bestand openen waarbij ik alleen de keuze heb uit bepaalde bestandsnamen? In mij geval "Naam_nnn.xls", waarbij 'nnn' staat voor een 3-cijferig volgnummer.

Ik heb het geprobeerd met "GetOpenFilename", maar daar kom ik niet verder mee.

Dus hoe wel?

Alvast bedankt,
Kees
 
Misschien heb je hier iets aan:
Code:
Option Compare Database
Option Explicit

Public Enum FileType
    Access = 0
    Excel = 1
End Enum

Public Function SelectSingleFile(strCurDir As String, strDialogTitle As String, intFilter As FileType) As String
   ' Hetzelfde als SelectOneFile maar dan met behulp van de built-in Application.FileDialog.
   On Error GoTo Err_SelectSingleFile

   Dim fd As FileDialog
   Dim varSelectedItem As Variant
   Dim strFile As String
   
   'Create a FileDialog object as a Folder Picker dialog box.
   Set fd = Application.FileDialog(msoFileDialogFilePicker)
   strFile = ""
   
   With fd
      .Title = strDialogTitle
      .ButtonName = "&Select"
      .InitialView = msoFileDialogViewDetails
      'Add a filter that includes MDB or XLS files and make it the first item in the list.
      .Filters.Clear
      Select Case intFilter
        Case FileType.Access
            .Filters.Add "Access databases", "*.mdb", 1
        Case FileType.Excel
            .Filters.Add "Excel spreadsheet", "*.xls", 1
      End Select
      .Filters.Add "Alle bestanden", "*.*", 2
      'Sets the initial file filter to number 1.
      .FilterIndex = 1
      If .Show = -1 Then
         For Each varSelectedItem In .SelectedItems
            If Len(strFile) > 0 Then
                strFile = strFile & "|" & varSelectedItem
            Else
                strFile = varSelectedItem
            End If
         Next varSelectedItem
      Else
         strFile = ""
      End If
   End With

    SelectSingleFile = strFile
        
    Set fd = Nothing

Exit_SelectSingleFile:
   Set fd = Nothing
   Exit Function

Err_SelectSingleFile:
   ErrorProc Err, Error$, "SelectSingleFile", "basFileDialog"
   Resume Exit_SelectSingleFile

End Function
Deze code gebruik ik in Access. Kijk met name naar de filters.

Enjoy!
 
Laatst bewerkt:
Hoi Keecie,

Bij Help voor "GetOpenFilename" dan zie je dit.
Code:
fileToOpen = Application _
    .GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then
    MsgBox "Open " & fileToOpen
End If

een beetje aanpassen
Code:
Sub test()
10
fileToOpen = Application _
    .GetOpenFilename("Naam_nnn (*.xls), *.xls")
If fileToOpen <> False Then
    controleA = Right(fileToOpen, 12) ' Geeft Naam_nnn.xls
    controleB = Left(controleA, 8)    ' Geeft Naam_nnn
    controleC = Left(controleB, 4)    ' Geeft Naam
    controleD = Right(controleB, 3)   ' Geeft nnn
    
    If controleC = "Naam" Then
        If IsNumeric(controleD) Then
            MsgBox "Ja het is het goede formaat"
        Else
            MsgBox "Nee het is niet het juste formaat, probeer nog een keer ;-)"
            GoTo 10 ' toch mooi dat het commendore 64 nie voor niet was
        End If
    Else
        MsgBox "Nee het is niet het juste formaat, probeer nog een keer ;-)"
        GoTo 10 ' toch mooi dat het commodore 64 niet voor niets was
    End If
End If
End Sub

En je heb wat je wil met "GetOpenFilename"

Gr,
Alex,
 
Laatst bewerkt:
Guus,

Bedankt. Dat ziet er indrukwekkend uit, maar ik krijg het nog niet werkend. Hoe roep ik die functie aan? Ik gebruik e.e.a. in Excel.
Heb ik dit
Code:
Option Compare Database
Option Explicit
 Public Enum FileType
    Access = 0
    Excel = 1
End Enum
nodig? De eerste regel verschijnt bij mij al rood, ten teken dat er iets niet klopt.

Ik probeer dan wel te programmeren, maar het komt meestal toch neer op een macro opnemen, die opschonen en hier en daar wat optimaliseren. En proberen af en toe wat echte vba op te snuiven.

Groet,
Kees
 
Hoi Alex,

Ook bedankt. Dit werkt.
Misschien had ik mijn vraag nog iets verder moeten uitwerken.
Ik zou graag in de dialog box alléén de bestanden "Naam_nnn.xls" willen zien.

Het hoeft niet per se met "GetOpenFilename" hoor ;-)

Groet,
Kees
 
Oke, dan kun je het doen als volgende.

Code:
Workbooks.Open "c:\vul hier de rest van waar het bestaat staat neer\Naam_nnn.xls"

Gr,
Alex,
 
Ik denk dat je een userform moet maken met een combobox of listbox die je vult in de initilialiseringsgebeurtenis van het userform met de methode filesearch (Excel <2007) of de methode scripting.filesystemobject in Excel 2007, waarmee je alle bestanden in 1 of meer directories die voldoen aan het patroon naaam_nnn_.xls filtert.
 
Alex,

Dit is een misverstand denk ik.

Dan zou ik altijd en alleen het bestand "Naam_nnn.xls" openen.
Maar dat bestaat niet eens. Wel
Naam_001.xls
Naam_002.xls
Naam_003.xls
Naam_004.xls
enz.
Maar in dezelfde directory zullen ook bestanden staan met een andere naam:
Naam2_001.xls
Naam2_002.xls
Naam2_003.xls
Naam2_004.xls
enz.
En juiste die laatste (Naam2_nnn.xls) wil ik niet laten openen en daarom lijkt het me handig als je ze ook niet kunt zien in een openFileDialogBox.

Groet,
Kees


Oke, dan kun je het doen als volgende.

Code:
Workbooks.Open "c:\vul hier de rest van waar het bestaat staat neer\Naam_nnn.xls"

Gr,
Alex,
 
Okay snb (heb je ook een gewone naam?),

Dit ga ik proberen.

Bedankt,
Kees

Ik denk dat je een userform moet maken met een combobox of listbox die je vult in de initilialiseringsgebeurtenis van het userform met de methode filesearch (Excel <2007) of de methode scripting.filesystemobject in Excel 2007, waarmee je alle bestanden in 1 of meer directories die voldoen aan het patroon naaam_nnn_.xls filtert.
 
Lijkt mijn inderdaad ook een goed idee van snb nu ik snap wat je bedoelt.

Gr,
Alex,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan