Avatar billede jensen363 Forsker
04. juni 2010 - 09:19 Der er 7 kommentarer og
1 løsning

Eksporter data som ekstern fil

Jeg har fundet denne programstump, som henter kildedata fra en pivottabel i regnearket, og skriver resultatet / kildedata i en ny arkfane :

Public Sub ExtractPivotTableData()

    Dim objActiveBook As Workbook
    Dim objSheet As Worksheet
    Dim objPivotTable As PivotTable
    Dim objTempSheet As Worksheet
    Dim objTempPivot As PivotTable

    If TypeName(Application.Selection) <> "Range" Then
        Beep
        Exit Sub
    ElseIf WorksheetFunction.CountA(Cells) = 0 Then
        Beep
        Exit Sub
    Else
        Set objActiveBook = ActiveWorkbook
    End If

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    For Each objSheet In objActiveBook.Sheets
        For Each objPivotTable In objSheet.PivotTables
            With objActiveBook.Sheets.Add(, objSheet)
                With objPivotTable.PivotCache.CreatePivotTable(.Range("A1"))
                    .AddDataField .PivotFields(1)
                End With
                .Range("B2").ShowDetail = True
                objActiveBook.Sheets(.Index - 1).Name = "SOURCE DATA FOR SHEET " & objSheet.Index
                objActiveBook.Sheets(.Index - 1).Tab.Color = 255
                .Delete
            End With
        Next
    Next

    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With

End Sub

Data i mit regneark består af mere end 65.000 rækker, hvorfor programmet naturligvis stopper ( forventeligt )

Kan jeg istedet få denne udlæst som en ekstern csv-fil ( eller lignende ) som kan benyttes i en database ... hvordan ???
Avatar billede martin_moth Mester
05. juni 2010 - 19:41 #1
altså - vil du skrive til en txt-fil i stedet for et andet ark?

I så fald: Ja, sagtens
Avatar billede martin_moth Mester
05. juni 2010 - 19:51 #2
dim Filnavn as string
    dim Filnummer as integer
    FilNavn = "C:\Data.txt"]
Ret sti og fil til ønsket 
 
Åbner filen til skrivning

    Filnummer= Freefile
    Open Filnavn For output As #Filnummer

Skriver data til filen (Ret XXX til navnet på den variabel du vil skrive)

    Print #FilNummer, XXX & ";" '<-Skriver XXX til filen
    close filnavn
Avatar billede jensen363 Forsker
07. juni 2010 - 11:23 #3
Hej Martin

Kan du komme med et eksempel, hvor det virker i forhold til den modulkode jek allerede benytter ... jeg kan ikke få det til at virke :-(
Avatar billede martin_moth Mester
07. juni 2010 - 11:48 #4
Du må bedst selv kunne se hvilke data det er du kopierer over i det andet sheet. Jeg kan ikke gennemskue din kode, det ser ud som om den opretter flere sheets. Men det er ligemeget - du skal bare finde det data du ønsker at skrive til filen - herefter er det bare copy-paste :)

Mon ikke det er f.eks.  denne linje der angiver det data der skal kopieres (og dermed skrives til fil)
[code]
.AddDataField.PivotFields(1)
[/code]

Det kan du ændre til

    FilNavn = "C:\Data.txt"
    Filnummer= Freefile
    Open Filnavn For output As #Filnummer
    Print #FilNummer, .AddDataField.PivotFields(1) & ";"      close filnavn


Du kan sætte open/close uden for løkken, så den ikek skal åbne og lukke filen en milliard gange ;-)
Avatar billede jensen363 Forsker
08. juni 2010 - 09:33 #5
Hej Martin

Umiddelbart ser det ud til at det er denne del af modulkoden der p.t. genererer output :

                .Range("B2").ShowDetail = True
                objActiveBook.Sheets(.Index - 1).Name = "SOURCE DATA FOR SHEET " & objSheet.Index
                objActiveBook.Sheets(.Index - 1).Tab.Color = 255
                .Delete
Avatar billede martin_moth Mester
08. juni 2010 - 10:45 #6
ok
Avatar billede jensen363 Forsker
08. juni 2010 - 10:51 #7
... men jeg kan ikke få det til at virke :-(
Avatar billede jensen363 Forsker
06. juli 2010 - 12:18 #8
Lukker
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