08. februar 2007 - 13:38Der er
18 kommentarer og 1 løsning
Anvendelse af "variabler" i Word som indtastes af bruger
Hej
Jeg skal oprette et "standarddokument"/skabelon med en række variabler, f.eks. kunde, dato, dato_for_underskrift, status_dato mv.
Disse variabler skal indtastes af bruger, evt. første gang dokumentet åbnes alternativt på en selvstændig side/ved anvendelse af "makroknap".
Jeg er helt blank i dette! - kan nogen hjælpe med opsætning af disse variabler samt et lille script/el.lign. hvor brugeren bliver holdt i hånden og bare skal taste oplysninger ind?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Jeg har set folk bruge tomme makrofelter til at vise hvor ting skal indtastes. Så trykker man blot på et felt og begynder at skrive. Der kan i forvejen være indsat tekst som "Skriv her", hvilket så forsvinder når man begynder og skrive i pågældende felt.
Du kan f.eks. vælge Insert -> Field -> MacroButton -> Indstille til "NoMacro". Der bliver så indsat et felt. Du kan ændre på hvad der skal stå i tekstfeltet ved at højreklikke på feltet og trykke på "Toggle Field Codes". Efter "MacroButton NoMacro" skriver du den tekst du vil have vist. Du kan også formatere den som du vil, f.eks. ved at sætte en farvet eller blinkende skrifttype.
Tak for dit svar, men...., enten forstår jeg ikke ideen i dit forslag eller også er min problemstilling ikke belyst ordentlig.
Hvis jeg flere steder i teksten vil have, at der f.eks. Coca-cola (kunde), 31. december (status_dato), 8. februar (dato) mv., men jeg kun vil skrive det et sted, f.eks på første side eller via "makroknap" hvordan kan jeg gøre det med din løsningsforslag? Jeg tror ikke jeg forstår hvad "MacroButton Nomacro [f.eks] Coca-cola" gør - som jeg ser det skal jeg jo skrive det alle steder eller hvad?
Håber du kan se min problemstilling - og på forhånd tak,
Så er det mig der har misforstået. Jeg havde forstået spørgsmålet som at du havde en række felter, som du ville vise brugeren, at denne skulle skrive i (og hvordan feltet skulle udfyldes).
Måske er løsningen følgende: I skabelonen lagres en userform (en slags dialogboks) indeholdendede de pågældende felter.
Nogle felter skal sikkert placeres på bestemt steder i dokumentet. Dette kan gøres via bogmærker. Jeg forstår også at visse felter skal anvendes flere gange i dokumentet. Det er et spørgsmål om at aktivere feltet i formularen, så det overføres til markørens placering - hvis placeringerne af disse kan variere.
Det heles styres af VBA-kode i formularen.
Er det forstået korrekt?
Hvis du alleredehar et eksempel - kan dette sendes til: pb@supertekst-it.dk
Ja, jeg tror det er korrekt forstået - men jeg forstår ikke hvad du mener med om jeg allerede har et eksempel? Jeg har hurtig lave en tekst hvor f.eks. KUNDE (=coca-cola", DATO (=8. februar), STATUS_DATO (=31. december) står flere steder, men jeg kan ikke umiddelbart lave en userform - var det noget du vil forsøge at "indlægge"?
Ja - det vil jeg gerne - men kan du ikke liste over de variabler, der er brug for - der skal vel være flere end KUNDE, DATO og STAUS_DATO - eller det er måske det hele?
Jeg har forsøgt at "oprette" yderligere variabel, men det er måske ikke så lige til? Jeg troede bare jeg kunne kopiere et indtastningsfelt i objektet og ændre navn i properties. Når jeg kører markoen kommer det nye felt på useformen, men når jeg siger ok lave den en fejl i "erstatTxt = Me.Controls(søgtxt).Value"
Er det til at forklare?
Du skal i hvertfald have mange tak for hjælpen - det ser super ud.
Denne kode er indlagt i en Userform, hvor bruger kan udfylde et antal tekstbokse, der anvendes i et dokument et eller flere steder:
Private Sub CommandButton1_Click() 'OK Dim cc As Control, søgText, erstatTxt For Each cc In Me.Controls cnavn = LCase(cc.Name) If InStr(cnavn, "label") = 1 Then søgtxt = Left(cc.Caption, Len(cc.Caption) - 1) ': fjernes erstatTxt = Me.Controls(søgtxt).Value udførErstatning søgtxt, erstatTxt End If Next Selection.HomeKey Unit:=wdStory 'gå til start af dokument End Sub Private Sub udførErstatning(tekst, erstat) Selection.HomeKey Unit:=wdStory 'gå til start af dokument
Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = tekst .Replacement.Text = erstat .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = True .MatchWholeWord = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Synes godt om
Ny brugerNybegynder
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.