zelf kiezen bestand te importeren in excel VBA

Status
Niet open voor verdere reacties.

SierraGT

Gebruiker
Lid geworden
2 apr 2012
Berichten
23
Hallo allemaal.
ik wil graag een text bestand importeren naar scheet2 van een werkmap in excel.
maar ik wil graag dat de gebruiker zelf dit bestand kiest maar niet vanuit een pull-down oid.

nu kom ik overal allerlei dingen tegen met workbook open etc. maar ik wil graag vanuit vba het 'gewone-bestand-openen' venster
waarin de gebruiker zelf het bestand kan opzoeken en kan openen (zie foto). Dit kan ik echter niet vinden.
kan iemand mij verwijzen naar of een broncode leveren hoe dit venster te openen vanuit een macro?
excelopenen.jpg
 
Zoiets:
Code:
Sub KiesBestand()
    Dim Bestand As String
    Dim sts As Integer
    
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        sts = .Show
        If sts = 1 Then
            Bestand = .SelectedItems(1)
            MsgBox Bestand
        End If
    End With
End Sub
 
Laatst bewerkt:
precies!

daar was ik naar op zoek. :thumb:
kun je hierbij nog een voorkeur dir aangeven? dat hij bv. altijd een bepaalde 'start' map opent?
en de standaard bestand extentie op .txt zet?

dan wordt ik helemaal gelukkig!
 
helemaal top! bedankt.

pfff.. daar zit ik al een paar avonden naar te zoeken!
en nu binnen een paar minuten het gewenste resultaat, bedankt! :thumb::thumb:
 
Graag gedaan :)
 
moet hier nog een err_handler bij in bij annuleren?

als ik het dialoog venster open om een bestand uit te kiezen maar ik annuleer de actie
kan het programma geen waarde toekennen aan 'Bestand' en volgt een foutmelding.

wat is dan de handigste manier om hier een controle of error_handler aan toe te voegen?
 
Zie m'n aanpassing in #2 ;)
 
werkt perfect!

top! werkt helemaal zoals gewenst!
ik zou er zelf al een complete error handler in gebouwd hebben maar dit is een veel praktischer oplossing.

nog een hoop te leren!

nogmaals bedankt!
 
kleine aanpassing..

de if stelling van STS moet MIN 1 zijn -1
anders werkt ie niet.. ;)

Code:
  Dim Bestand As String
    Dim sts As Integer
    
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        sts = .Show
        If sts = -1 Then
            Bestand = .SelectedItems(1)
            MsgBox Bestand
        End If
        End With
 
Werkt hier anders prima.
 
vreemd. heb hier excel 2010.
had even een textbox gemaakt waarin de waarde van sts wordt weer gegeven.
bij annulering wordt de sts waarde: 0
en bij het aanklikken van een bestand -1

wazig. maar hier werkt het in ieder geval.
zou het verschil kunnen uitmaken welke excel versie je gebruikt?
 
Dat weet ik zo niet maar standaard is het inderdaad 0 en -1
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan