• 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.

viadialogbox het bestandsnaam doorgeven

Status
Niet open voor verdere reacties.

annetiti

Gebruiker
Lid geworden
6 aug 2007
Berichten
195
Hallo

Ben op zoek om in excel tekstbestanden te importeren via een macro. De macro opnemen lukt, maar ik zou via een dialoogvenster het bestand willen selecteren en deze dan importeren.
Zie voorbeeld. Hoe kan ik in de with instructie de fname waarde invoeren = naam van het bestand?

Hopelijk kan er iemand mij helpen. In bijlage een het txt bestandje
groeten Annetiti

Sub importeer_wilkeurigbestand()

Dim fname As String
fname = Application.GetOpenFilename(filefilter:="Excel Files (*.txt), *.txt")


With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\F-Data\data\excel vba\Macro-Vb01s.txt", Destination _
:=Range("$A$1"))
.Name = "Macro-Vb01s"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
 

Bijlagen

hi

probeer notebook ofwel mss C++ ?
ik heb nog nooit eerder code in exel gestoken ik type ze gewoon daar, maar je kan het proberen
 
Code:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fname, Destination:=Range("$A$1"))
 
Hallo,

Code:
With ActiveSheet.QueryTables.Add("Text;" & fname, Range("$A$1"))

Edit: te laat.
Wb was me voor.
 
Je hoeft zelfs geen aparte string te declareren.

Code:
With ActiveSheet.QueryTables.Add("TEXT;" & _
    Application.GetOpenFilename("Excel Files (*.txt), *.txt"), Range("$A$1"))
 
Of gebruik

Code:
Sub tst()
    workbooks.OpenText "naam bestand"
End Sub
 
Laatst bewerkt:
dialoogbox

Hallo,

Code:
With ActiveSheet.QueryTables.Add("Text;" & fname, Range("$A$1"))

Edit: te laat.
Wb was me voor.

Hartellijk dank

IK probeer het en laat zeker iets weten

groeten Anne
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan