Avatar billede h_s Forsker
06. august 2010 - 09:48 Der er 2 kommentarer og
1 løsning

Importer regneark i første tomme række

Jeg har brug for en makro, der importer et regneark i første tomme række. Det sker hver måned, så første tomme række er ikke den samme hver gang.

Jeg har prøvet at optage en makro:

    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=S:\Bruger\Cash Management\Statistik\Faste opgaver\Udland" _
        , _
        "sbetalinger\Udl ovf\Månedsudtræk\Månedsudtræk.xls;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database" _
        , _
        "="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLE" _
        , _
        "DB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Dat" _
        , _
        "abase=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repa" _
        , "ir=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"), _
        Destination:=Range("$A$19851")).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("QUERY_FOR_VF421_0001")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = _
        "S:\Bruger\Cash Management\Statistik\Faste opgaver\Udlandsbetalinger\Udl ovf\Månedsudtræk\Månedsudtræk.xls"
        .ListObject.DisplayName = "Tabel_Månedsudtræk"
        .Refresh BackgroundQuery:=False
    End With
    'find  første tomme row i database'

Sheets("2010").Activate

End Sub

Den gør som den skal, bortset fra at den altid indsætter i række 19851.

Jeg har også fundet makro der finder første række der er tom:

Sheets("Ark1").Activate
TRow = (Sheets("Ark1").Range("A1000000").End(xlUp).Row) + 1
Sheets("Ark1").Range("A" & TRow).Select


Men hvordan får jeg det slået sammen?
Avatar billede kabbak Professor
06. august 2010 - 11:30 #1
Sub start()
    Dim TRow As String
    Sheets("2010").Activate
    TRow = Range("A1000000").End(xlUp).Offset(1, 0).Address

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array( _
        "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=S:\Bruger\Cash Management\Statistik\Faste opgaver\Udland" _
        , _
        "sbetalinger\Udl ovf\Månedsudtræk\Månedsudtræk.xls;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database" _
        , _
        "="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLE" _
        , _
        "DB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Dat" _
        , _
        "abase=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repa" _
        , "ir=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"), _
        Destination:=Range(TRow)).QueryTable
        .CommandType = xlCmdTable
        .CommandText = Array("QUERY_FOR_VF421_0001")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .SourceDataFile = _
        "S:\Bruger\Cash Management\Statistik\Faste opgaver\Udlandsbetalinger\Udl ovf\Månedsudtræk\Månedsudtræk.xls"
        .ListObject.DisplayName = "Tabel_Månedsudtræk"
        .Refresh BackgroundQuery:=False
    End With
Avatar billede h_s Forsker
06. august 2010 - 12:54 #2
Det virker når jeg fjerner 3. sidste linje.

Hvad gør den? .ListObject.DisplayName = "Tabel_Månedsudtræk"
Avatar billede kabbak Professor
06. august 2010 - 13:38 #3
ved det faktisk ikke, tror ikke den har nogen betydning i dette forløb.
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