Avatar billede Sneen Nybegynder
05. juni 2014 - 18:03 Der er 3 kommentarer og
1 løsning

VBA tekstfil til excel

Hej
Jeg er ny her på eksperten.dk, og har lidt udfordring med at få hentet en tekstfil med makro/VBA til excel. Jeg vil gerne kunne hente en tekstfil direkte ind i excel, med angivelse af sti og filnavn, som indtastes på det aktuelle worksheet.


Tekstfilen hedder det samme fra gang til gang, på nær for datoen.

I det worksheet hvor data skal sættes ind i, vil jeg gerne kunne:

- Angive sti til hvor tekstifilen ligger (i f.eks. B3)
- Angive datoen for den aktuelle fil, som skal hentes (i f.eks. B4)

Filen hedder f.eks. varer20140502.txt, og koden skal vide at den skal hente filen varer&"den angivne dato" i B4.

Data skal starte i f.eks. A9.

Jeg har fint fået indspillet en makro, som henter den specfikke fil, men kan ikke få det til at virke med angivelse af variable på det enkelte worksheet.

Er der nogle som kan hjælpe?

Vh
Sneen
Avatar billede kabbak Professor
05. juni 2014 - 21:27 #1
smid lige den optagne makro herind
Avatar billede Sneen Nybegynder
05. juni 2014 - 21:39 #2
Kommer her, har skrevet "Stiens navn", der hvor den oprindelige sti står, håber det er ok:


Sub NyMakro()
'
' NyMakro
'

'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;Stiens navn", Destination:=Range( _
        "$A$9"))
        .Name = "varer140502"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede kabbak Professor
05. juni 2014 - 22:52 #3
Sub NyMakro()
'
' NyMakro
'- Angive sti til hvor tekstifilen ligger (i f.eks. B3)
'- Angive datoen for den aktuelle fil, som skal hentes (i f.eks. B4)
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & Range("B3"), Destination:=Range( _
        "$A$9"))
        .Name = Range("B4")
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Avatar billede Sneen Nybegynder
06. juni 2014 - 13:11 #4
Tusind tak, fungerer helt perfekt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester