|
| Userform - tidl. indtastning Fra : matchrace | Vist : 1246 gange 20 point Dato : 02-04-07 11:06 |
|
Kære alle
Jeg har kreeret en userform til brug for en word-template. Den indeholder felter til adresse, afsender, titel, emne, reference m.v. Og den virker egentlig ganske godt. Så langt så godt for den glade amatør.... to ting truer dog med at gøre mig til en mavesur amatør:
1) Jeg vil gerne have den til 'huske' tidligere indtastet info (i dette tilfælde afsender og titel). En form for 'autofill' funktion kan man vel sige. Er der en smart kode for dette? Eller skal jeg hellere vælge en mere rudimentær funktion, hvor userformen som default 'forslår' én standard afsender (dvs. ikke popper op med tomt felt, men med et foreslået udfyldt felt)?
Der er flere brugere (som jævnligt skal skiftes ud) og en fastlåst funktion, hvor x antal standard valgmuligheder præsenteres er ikke god (der skal også være mulighed for alm. indtastning). Ligeledes skal word-templaten lægges på et fælles drev, og en funktion, hvor kun én default forslås, er derfor heller ikke super optimal....
2) er det muligt, i en word userform, at hente modtager-info (navn, adresse m.v.) fra fx. outlook adressekartotek som supplement og alternativ til den alm. slave-indtastning? Det vil være super rart.
Jeg håber, der er nogle, der i deres gavmildhed, vil svare - og undskylder det lave pointantal (jeg har just tilmeldt mig)
Nicolai
| |
| Accepteret svar Fra : berpox | Modtaget 20 point Dato : 30-04-07 21:47 |
|
Du kan jo skrive til et antal nøgler i registreringsdatabasen i HKCU afsnittet.
Hver gang du åbner formularen, henter den teksten fra registreringsdatabasen til dine felter.
Når du trykker på [OK] knappen, gemmes teksten i registreringsdatabasen, og dit dokument udfyldes.
For at tilgå registreringsdatabasen skal du have tilføjet "Windows Script Host Object Model" til dine referencer.
Her er en eksempelkode du kan arbejde videre med
Kode Sub WriteRegistry()
Dim fso As IWshRuntimeLibrary.WshShell
Dim source1, source2 As String
Dim target1, target2 As String
Set fso = New IWshRuntimeLibrary.WshShell
source1 = "Tekst 1"
source2 = "Tekst 2"
fso.RegWrite "HKCU\wordtemplate\textbox1", source1, "REG_SZ"
fso.RegWrite "HKCU\wordtemplate\textbox2", source2, "REG_SZ"
target1 = fso.RegRead("HKCU\wordtemplate\textbox1")
target2 = fso.RegRead("HKCU\wordtemplate\textbox2")
fso.Popup target1 & vbNewLine & target2, 0, "Popup title line"
End Sub |
Ovenstående lægger teksterne i en folder under HKCU\wordtemplate\ i registreringsdatabasen.
(HKCU = HKEY_CURRENT_USER)
Opslag i Outlook er en mulighed - men er ualmindeligt bøvlet - og kræver certifikater (a.h.t. sikkerheden) og den slags for at få lov til at udføre forespørgsler i Outlook adressekaretoteket.
Hvis dine adresser er gemt på en Exchange server....så glem det som "menigmand" ... been there, tried is hard, died there!
mvh berpox
| |
| Godkendelse af svar Fra : matchrace |
Dato : 14-05-07 21:30 |
|
Hov - der sov jeg vist i timen. Sorry!
Jeg har benyttet dit glimrende forslag, brygget lidt videre på det, ramt muren et par gange (som en amatør vel skal?!) - men kommet i mål med en ok løsning synes jeg. Egentlig bedre end, hvad jeg havde tænkt!
Så igen - super svar berpox! Tusind tak ( i øvrigt et svar, der generede flere små mulige fremtidige projekter).
de venligste hilsner
nicolai
| |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|