18. januar 2010 - 21:44Der er
10 kommentarer og 1 løsning
Flytte tekst fra excel til word via makro
Jeg har nogle oplysninger stående i excel i arket "STAM" I dette ark har jeg navngivet 4 celler: * navn1 * navn2 * dato1 * dato2
I word har jeg et dokument/skabelon som jeg gerne vil have flette disse data ind i.
Wordfilen ligger på følgende placering: c:\dokumenter\flettefil.doc
Som jeg selv ser det, så er der 2 forskellige måder at løse det på. Jeg skal kun bruge en løsning, så det er op til jer hvilken løsning der skal laves.
Mulighed 1: I wordfilen/skabelonen er der 10 tekst/flette felter felt1-10
Nu skal data fra excelfelterne indsættes som følger: excel word navn1 -> felt1 + flette felt3 navn2 -> felt2 + flette felt4 dato1 -> felt5 + flette felt7 + flette felt 9 dato2 -> felt6 + flette felt8 + flette felt 10
Mulighed 2: I wordfilen kan jeg oprette en userform der hedder USERFORM1. Denne userform indeholder 4 tekstboxe som hedder: tb1 + tb2 +tb3 + tb4
Nu skal data fra excelfelterne indsættes som følger: excel word navn1 -> tb1 navn2 -> tb2 dato1 -> tb3 dato2 -> tb4
(herefter sørger jeg selv for via en makro at få flettet dataene ind i wordfilen.)
Jeg havde tænkt mig at få en makro / knap der åbner filen: c:\dokumenter\flettefil.doc
og flytter dataene over som vist ovenfor.
Er der nogen der kan knække denne nød, eller er det helt umuligt?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Da jeg ikke er super skrap til dette har jeg ikke kunne få det smartoffices til at virke og har derfor strikket det lidt anderledes sammen så jeg kan bruge supertekst løsning.
Her er min fremgangmåde: 1. Jeg står i et åbent dokument og kører en makro hvorved data fra den åbne fil eksporteres til excel fil c:\data\flettefil.xls) 2.Wordskabelonen åbnes 3. Word henter data fra flettefilen og indsætter i userform lige som supertekst har vist.
Men jeg kan bare ikke få indarbejdet i excel makroen at den skal åbne: C:\data\flette forsøg.dot
Hvordan gør jeg det?
Jeg har indsat min kode nedenfor.
Sub export_Ekstern() Dim RK As Long, Data As Variant If vbYes = MsgBox("Er du sikker på at du vil eksportere data?", vbCritical + vbYesNo, "EXPORT") Then Application.ScreenUpdating = False
Dim wb As Workbook Set wb = Workbooks.Open("c:\data\flettefil.xls", True, False)
fperiodefra = .Range("i_år_startdato") fperiodetil = .Range("i_år_slutdato") fregnskabsår = .Range("regnskabsår") End With
With wb.Sheets("flet")
.Range("fletkundenr") = fkundenr ' indsætter data fra andet ark .Range("fletkundenavn0") = fkundenavn0 ' indsætter data fra andet ark .Range("fletkundenavn") = fkundenavn ' indsætter data fra andet ark .Range("fletkundenavn2") = fkundenavn2 ' indsætter data fra andet ark .Range("fletkundeadresse") = fkundeadresse ' indsætter data fra andet ark .Range("fletkundepostby") = fpostby ' indsætter data fra andet ark .Range("fletperiodefra") = fperiodefra ' indsætter data fra andet ark .Range("fletperiodetil") = fperiodetil ' indsætter data fra andet ark .Range("fletregnskabsår") = fregnskabsår ' indsætter data fra andet ark
Det er vist umuligt at åbne en .dot fil fra excel, hvor skabelonens startmakro køres, så den vej dropper jeg.
Hvis jeg kan få lidt mere hjælp til smartoffice først kode kan det være at det kan lykkes alligevel.
Det er vigtig at pointere at jeg står i en åben excelfil, som KONSTANT har nye data i cellerne NAVN1 + NAVN2 + DATO1 + DATO2
Imens jeg står i denne excelfil vil jeg gerne starte en wordfil og indsætte dataene fra disse 4 felter i nogle TEKSTFELTER i Word. Tekstfelterne i Word hedder f.eks. flet1, flet2, flet3 og flet4.
Se koden nedenfor, hvor jeg tror jeg skal have lidt hjælp.....
Option Explicit 'Flemming Vadet, August 2001, fv@smartoffice.dk 'Ref.: Microsoft Word 9.0 Object Library
Public gwdApp As Word.Application Public gwdDoc As Word.Document
Sub OpenNewWordDocument() Dim sFileToOpen As String Dim bWordStartedByMe As Boolean
' Bruger Word hvis Word er åben ellers fejl Set gwdApp = GetObject(, "Word.Application") gwdApp.Visible = True gwdApp.Activate
' Tilføj din egen kode her - hvad skal der ske ? ' f.eks. åben et eksisterende dokument Set gwdDoc = gwdApp.Documents.Open(Filename:=sFileToOpen)
'**************************************************** 'HER MANGLER JEG SÅ HJÆLP TIL AT FÅ FLYTTET TEKSTEN 'EXCELFELTERNE dato1+dato2+navn1+navn2 TIL 'WORD TEKSTFELTERNE felt1+felt2+felt3+felt4 '******************************************************
' Luk word - her uden at gemme ændringer. If bWordStartedByMe Then 'gwdApp.Quit SaveChanges:=False Else 'gwdDoc.Close SaveChanges:=False End If
GoTo ClearUp
ShitHappens: Select Case Err.Number Case 429 ' Hvis Word ikke er startet Set gwdApp = CreateObject("Word.Application") bWordStartedByMe = True Resume Next Case Else Err.Clear End Select
ClearUp: Set gwdDoc = Nothing Set gwdApp = Nothing End Sub
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.