Solsviken Skrevet 10. august 2007 Del Skrevet 10. august 2007 jeg har en del filer i html format som jeg vil ha inn i samme excel dokument, adskilt på forskjellige ark/sheets. F.eks. 1.htm 2.htm 3.htm 4.htm Disse fire filene ønsker jeg å åpne kjapt i 1 excel fil hvor de ulike arkene/sheets får samme navn som filnavnet. Altså 1, 2, 3 og 4 i eksempelet over. jeg snakker om 30- 40 filer som renner inn hver dag, og i dag åpner jeg en og en fil for så og copy paste over i nytt skjema. Dette tar unødvendig lang tid syns jeg. Har jeg muligheten til å ta en shortcut her ? Lenke til kommentar
Harald Staff Skrevet 10. august 2007 Del Skrevet 10. august 2007 Det er ikke så vrient å skrive en makro som gjør dette tror jeg. Vet du noe om makroer ? Har filene noe til felles, f.eks "alle *.htm -filene i den mappa" ? Er de slik formattert at du kan åpne dem direkte i Excel og de virker ? (Excel kan åpne html-filer via fil-åpne-dialogen) Hvilken Excelversjon / Språkversjon bruker du ? beste hilsen Harald Lenke til kommentar
Solsviken Skrevet 10. august 2007 Forfatter Del Skrevet 10. august 2007 Alle filene jeg får heter *.htm og ligger i samme mappe som jeg oppretter en felles xls fil. HTML filene er formatert slik at de lar seg åpne i Excel ja, men tabellene i htm filene er litt merklige så det blir ikke helt korrekt. Dette er bare en bagtell som kan leves med. Kan litt om macroer ja, altså dvs kan åpne VB editoren å lage knapper som skal kjøre en viss verdi, men da trenger jeg litt hjelp for selve programmeringen er jeg blank på. Kjører Office 2007 pakken på Norsk Lenke til kommentar
Harald Staff Skrevet 10. august 2007 Del Skrevet 10. august 2007 Kult. Se om denne får deg i gang. Du må endre bane til riktig mappe før testing: Sub Samle() Dim WB As Workbook Dim WB2 As Workbook Dim MyPath As String, TheFile As String MyPath = "C:\Temp\Test\" ChDir MyPath Set WB = Workbooks.Add(1) DoEvents TheFile = Dir("*.htm") Do While TheFile <> "" Set WB2 = Workbooks.Open(MyPath & "\" & TheFile) DoEvents WB2.Sheets(1).Move after:=WB.Sheets(WB.Sheets.Count) DoEvents Set WB2 = Nothing TheFile = Dir Loop End Sub HTH. Beste hilsen Harald Lenke til kommentar
Solsviken Skrevet 10. august 2007 Forfatter Del Skrevet 10. august 2007 Takk for svar:) virker som jeg nesten er i mål, får til å kjøre makroen, men får en feil som følger "Kan ikke sette inn arkene i målarbeidsboken fordi målarbeidsboken har færre rader og kolonnner en kildearbeidsboken. Hvis du vil flytte data til målarbeidsboken kan du merke dataene og deretter bruke kopier og lim inn" Debug guler ut; WB2.Sheets(1).Move after:=WB.Sheets(WB.Sheets.Count) Lenke til kommentar
Harald Staff Skrevet 10. august 2007 Del Skrevet 10. august 2007 Den feilen oppstår når den nye arbeidsboken -WB i koden - er i Excel97-2003-format eller står i "kompatibilitetsmodus". Er default filformat 97-2003 hos deg ? Det lar seg nok løse dette, f.eks via lagre-lukke-åpne igjen, eller å åpne en eksisterende xlsx-fil, jeg vet ikke hva som er praktisk for deg. Lenke til kommentar
Solsviken Skrevet 10. august 2007 Forfatter Del Skrevet 10. august 2007 Fungerte utmerket nå Var som du sa, sette filtype til det nye 2007 formatet i steden for kompabilitetsmodus så virket det. Tusen meget takk Harald. Du har herved spart meg for MYE arbeid Fungerte akkurat slik jeg ønsket. Lenke til kommentar
Harald Staff Skrevet 10. august 2007 Del Skrevet 10. august 2007 Så bra. Bare hyggelig vet du. Beste hilsen Harald Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå