Avatar billede obrogaard Nybegynder
27. september 2012 - 21:10 Der er 5 kommentarer og
1 løsning

Hjælp til vba kode

Da jeg ikke har den store programmerings erfaring, har jeg brug for hjælp til at finde en fejl i noget VBA kode jeg har fundet på internettet.
jeg vil gerne hente data fra mange semikolonsepareret filer og indsætte det i en ny wookbook. indholdet skal ligge i en lang liste.
Nedenstående kode gør det næsten, men for hver ny file der bliver hentet ind rykker indholdet 4 celler ud...

Sub hent()
Dim Str1 As String
Dim i As Integer
Dim j As Long
Dim Boo1 As Boolean
Dim Obj1 As Object

Set Obj1 = CreateObject("excel.application")
Obj1.Workbooks.Add

With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.Filters.Clear
.Filters.Add "vfo filer (*.ovf)", "*.ovf"
.Filters.Add "alle filer (*.*)", "*.*"
.Show
If .SelectedItems.Count > 0 Then
Obj1.Worksheets(1).Activate
j = 1
For i = 1 To .SelectedItems.Count
    Str1 = "TEXT;" & .SelectedItems.Item(i)
    With Obj1.ActiveSheet.QueryTables.Add(Connection:=Str1, Destination:=Obj1.Worksheets(1).Cells(j, 1))
    .TextFileSemicolonDelimiter = True
    .Refresh BackgroundQuery:=True
        .FieldNames = True
        .RowNumbers = True
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    Boo1 = False
    While Boo1 = False
        j = j + 1
        If Obj1.Worksheets(1).Cells(j, i).Value = "" Then
            Boo1 = True
        End If
    Wend
Next
End If
End With

Obj1.Visible = True
End Sub
Avatar billede supertekst Ekspert
27. september 2012 - 22:45 #1
Har du et eksempel på en csv-fil, som du kunne sende?

@-adresse under min profil.
Avatar billede obrogaard Nybegynder
28. september 2012 - 13:17 #2
Tak fordi du gider se på det, filerne er sendt
mvh Ole
Avatar billede supertekst Ekspert
29. september 2012 - 09:34 #3
Dim rækkeNr As Long
Dim Str1 As String
Public Sub hentOvfiler()
    rækkeNr = 1

    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "vfo filer (*.ovf)", "*.ovf"
        .Filters.Add "alle filer (*.*)", "*.*"
        .Show
       
        If .SelectedItems.Count > 0 Then
            For i = 1 To .SelectedItems.Count
                Str1 = "TEXT;" & .SelectedItems.Item(i)
                indlæsLinjer Mid(Str1, 6), rækkeNr
            Next
        End If
    End With
End Sub
Private Sub indlæsLinjer(filSti, rækkeNr)
Dim felter As Variant, cc As Long, kolNr As Long
    Open filSti For Input As #1
   
    kolNr = 1
   
    While Not EOF(1)
        Line Input #1, linje
        linje = Replace(linje, " ", "")
       
        felter = Split(linje, ",")
       
        For cc = 0 To UBound(felter)
            ActiveSheet.Cells(rækkeNr, kolNr) = felter(cc)
            kolNr = kolNr + 1
        Next cc
       
        rækkeNr = rækkeNr + 1
        kolNr = 1
    Wend
    Close #1
End Sub
Avatar billede supertekst Ekspert
29. september 2012 - 09:36 #4
PS: For at give point skal du AFVISE eget SVAR og ACCEPTERER mit. SVAR anvendes kun af forslagsstillere. Opgavestillere anvender KOMMENTAR eller ACCEPTERER eller AFVISER SVAR...
Avatar billede obrogaard Nybegynder
29. september 2012 - 11:47 #5
Tak for hjælpen, det er lige hvad jeg skal bruge.
mvh Ole
Avatar billede supertekst Ekspert
29. september 2012 - 11:59 #6
Selv tak..
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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