Fjøslukt Skrevet 14. desember 2008 Del Skrevet 14. desember 2008 Hei, har et "spesielt" behov. Det har seg slik at jeg har ca 100 forskjellige word dokumenter (brev) som kun inneholder tekst (formatert som normal, og heading 1). Ingen av disse har noe andre objekter i seg enn kun ren teskt. Problemet er at jeg skal ha alle disse dokumentene inn i spesielle maler (f.eks. brevmalen til et firma). Jeg har et tomt dokument som er brevmalen jeg bruker. Det jeg gjør nå, er å ta å kopiere all testen fra hvert enkelt brevdokument inn i brevmalen, og lagre dokumentet som tittelen på det opprinnelige brevet. (Det er viktig at tittelen blir beholdt siden jeg bruker disse i noen linker) Men siden jeg har over 100 dokumenter, tar dette veldig lang tid. Jeg har prøvd meg med combine documents i word, men det virker på meg som den ser etter forskjeller i dokumenter. Siden mitt behov er å slå sammen dokument med tekst med en mal (som gjerne inneolder logo, topptekst, og bunntekst), går ikke dette. Er det noen som har noen tips til hva jeg kan gjøre for å lette arbeidet? Lenke til kommentar
kjeklulf Skrevet 14. desember 2008 Del Skrevet 14. desember 2008 Før vi starter: Hvilken versjon av Word har du og hvilket Word-format er de gamle og nye dokumentene i (doc eller docx)? Lenke til kommentar
Fjøslukt Skrevet 15. desember 2008 Forfatter Del Skrevet 15. desember 2008 I utgangspunktet er filene i docx, men jeg kan lett konvertere de til doc. Sitter å jobber på Office 2007 Lenke til kommentar
HiSpeed Skrevet 15. desember 2008 Del Skrevet 15. desember 2008 Sett inn -> Objekt -> Tekst fra fil Lenke til kommentar
Fjøslukt Skrevet 15. desember 2008 Forfatter Del Skrevet 15. desember 2008 Sett inn -> Objekt -> Tekst fra fil Ja, det er det jeg gjør idag, men jeg skulle hatt en måte som gjør dette automatisk. Dvs at den setter inn teskt fra alle filene, og lagrer de som speperate filer med opprinnelig filnavn.. Spesielt siden det er så mange dokumenter, og denne prosessen gjøres mange ganger Lenke til kommentar
Harald Staff Skrevet 15. desember 2008 Del Skrevet 15. desember 2008 Du trenger en eller flere makroer. Fin anledning til å lære noe nytt og nyttig dette. Beste hilsen Harald Lenke til kommentar
kjeklulf Skrevet 15. desember 2008 Del Skrevet 15. desember 2008 Som Harald skriver; her må du til med makroer. Et lite spørsmål til: Er det noen grunn til at du må legge til teksten i malen og ikke omvendt? Hvis malen kun inneholder topp- og bunntekst vil det være enklere å legge disse til i dokumentene enn å gjøre det den veien du har foreslått. Lenke til kommentar
Fjøslukt Skrevet 15. desember 2008 Forfatter Del Skrevet 15. desember 2008 Ja, jeg regner med makroer, men er det noen som har en slik makro/kan skrive en? Grunnen til at det må være tekst i mal, er at malene inneholder ikke bare topp/bunn tekst Lenke til kommentar
Harald Staff Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 (endret) Man må vite bøttevis med tilsynelatende ubetydelige detaljer for å levere deg en makro som funker. Og siden du tilsynelatende er blank på området, vil du antakelig bare være misfornøyd og sur siden den ikke funker som forventet med en gang. Gå løs på dette selv. Brekk ned oppgaven til noe a la dette -hvordan få en makro til å sette tekst inn i en mal? -hvordan få en makro til å lagre et dokument med et spesielt navn? -hvordan få en makro til å gå igjennom alle filene i en mappe? -osv osv osv og så prøver og leser og googler du og lærer noe nytt. HTH. Beste hilsen Harald edit:typo Endret 16. desember 2008 av Harald Staff Lenke til kommentar
Fjøslukt Skrevet 16. desember 2008 Forfatter Del Skrevet 16. desember 2008 Takker for hjelpen så langt... Er ikke helt blank med makro, men trenger litt hjelp. Har fått til en makro som setter inn teksten i malen, men den setter bare inn teksten fra det samme dokumentet (f.eks dokument med navn: brevtekst1.docx) I tillegg lagrer ikke makroen filen, men åpner kun dialogboksen "lagre som" Så jeg føler at jeg er et skritt i riktig retning, jeg mangler bare å få makroen til å gjøre det samme med alle filene i mappen, i tillegg til å lagre de automatisk, ikke bare åpne dialogboksen "lagre som" Lenke til kommentar
Fjøslukt Skrevet 16. desember 2008 Forfatter Del Skrevet 16. desember 2008 Markoen jeg har til nå er: Sub Testmakro1() ChangeFileOpenDirectory _ "C:\Documents and Settings\...\...\...\..\" -> er i realiteten en lang mappestruktur, men for å gjøre det enkelt skriver jeg den slik i denne posten! Documents.Open FileName:="malen.docx" ChangeFileOpenDirectory _ "C:\Documents and Settings\...\...\..\.." -> er en annen mappestruktur, siden brevene med tekst ligger i en annen mappe enn selve malen Selection.InsertFile FileName:= _ "brevtekst1.docx" -> det er her jeg sliter, jeg skulle hatt det slik at den setter inn den første filen i mappen, deretter lagrer den "nye" filen med samme navn som brevet med tekst (f.eks hvis første fil het brevtekst1.docx, så vil jeg at den nye filen også skal hete dette) Application.Run MacroName:="ODFConverter.ODF.FileSaveAs" End Sub Lenke til kommentar
Harald Staff Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 Så bra. Spill inn en makro mens du lagrer en fil manuelt, så har du et bra utgangspunkt for lagre-kode. Se om du får skrudd til denne excelmakroen når det gjelder filer i en mappe: http://www.contextures.com/xlfaqMac.html#LoopBooks HTH. Beste hilsen Harald Lenke til kommentar
Fjøslukt Skrevet 16. desember 2008 Forfatter Del Skrevet 16. desember 2008 Nå er jeg nesten i mål, men jeg har et problem. Makroen er som følger: Sub Test() Dim TheFile As String Dim MyPath As String Dim FVFile As String MyPath = "C:\Documents and Settings\..\..\..\" Malen = "brevmal.doc" ChDir MyPath TheFile = Dir("*.docx") Do While TheFile <> "" If TheFile <> Malen Then Documents.Open FileName:=Malen Selection.MoveDown Unit:=wdLine, Count:=9 Selection.InsertFile FileName:=TheFile Application.ActiveDocument.SaveAs (TheFile) ---> her er problemet! TheFile = Dir End If Loop End Sub Jeg får besjed om at jeg ikke kan lagre en fil med samme navn som en fil som er i bruk. Dette er merkelig, fordi når jeg lagrer filen manuelt med det samme navnet så går det bra. I tillegg er jo ikke TheFile i bruke, TheFile er jo bare selve teksten som hentes inn som objekt, Word åpner jo ikke filene. Noen tips? Lenke til kommentar
Harald Staff Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 Huff, jeg kjenner ikke innmaten i Word særlig godt. Men det kan kanskje være at Word ikke er ferdig med fila før du begynner å lagre. Prøv en DoEvents aller først: Selection.InsertFile FileName:=TheFile DoEvents Application.ActiveDocument.SaveAs (TheFile) ---> her er problemet! Ellers får vi vente på Fredrik ... Lenke til kommentar
Fjøslukt Skrevet 16. desember 2008 Forfatter Del Skrevet 16. desember 2008 Ok, det med DoEvents gikk ikke, men fant en løsning. Hvis jeg først kjører gjennom med et dokument, men velger å lagre det manuelt "altså kaller jeg det for 1.doc). Deretter åner jeg makroen i dette dokumentet, da går det å bruke Application.ActiveDocument.SaveAs (TheFile) Det kommer altså an på hvilket dokument jeg åpner når jeg skal kjøre makroen. Har prøvd å kjøre makroen i selve malen, det gikk ikke, da får jeg en melding om at den ikke finner malen. Hvis jeg kjører makroen i en av brevene, får jeg beskjed om at jeg ikke kan lagre med samme navn. Hvis jeg lager meg et tomt word dokument, for jeg også beskjed om at jeg ikke kan lagre med samme navn. Altså er den eneste muligheten å kjøre gjennom et brev, og lagre dette manuelt. MEN, det siste "problemet" nå (like før alle brikkene faller på plass her) er at de ferdige dokumentene er lagret som docx. (Det var brevtekstene i utgangspunktet også) Grunnen til at malen er i doc format, mens brevene er i docx format er at ellers forsøker makroen å sette inn malen i malen. Jeg prøvde å fikse dette med en if kode, om at if TheFile <> Malen Then..... Problemet er at når If TheFile = Malen, så stopper alt opp (sikkert fordi jeg ikke har skrevet en kommando hva den skal gjøre dersom TheFile=Malen. Tanken er at dersom TheFile = Malen så skal den bare hoppe over filen, og gå videre. Hvordan skriver jeg dette? Lenke til kommentar
Harald Staff Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 Bytt disse to linjene til dette: End If TheFile = Dir Beste hilsen Harald Lenke til kommentar
kjeklulf Skrevet 16. desember 2008 Del Skrevet 16. desember 2008 Takk for tilliten Harald! Godt å se trådstarter har kommet langt på vei. Jeg er litt usikker på hvor feilen ligger og jeg er ikke stø nok i VBA til å ta det på sparket. Jeg skal sjekke litt og komme tilbake. 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å