Avatar billede perhol Seniormester
04. juni 2006 - 11:13 Der er 11 kommentarer og
2 løsninger

Makro med svarboks ?

På mit arbejde arbejder vi i Citrix. Der er brug for at indstille søgestier for filplaceringer i Word og Excel.
Til det formål har jeg lavet makroer. Men da vi arbejder i afdelinger har det til Word været nødvendigt at lave 3 forskellige filer med makroer der starter ved åbning af filen. (Dette gælder også til Excel)
Er det ikke muligt at lave en fil hvor man får mulighed for at vælge afdeling inden resten af makroen køres?

Her er makroen jeg bruger:
Private Sub Document_Open()
    Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "Drev:\MAPPE\H_AFD\Institution\Afdelings-hus\"
    Options.DefaultFilePath(Path:=wdUserTemplatesPath) = _
        "Drev:\MAPPE\H_AFD\Institution\Lokale Skabeloner\"
    Options.DefaultFilePath(Path:=wdWorkgroupTemplatesPath) = _
        "Drev:\Mappe\H_AF\"
    Options.DefaultFilePath(Path:=wdAutoRecoverPath) = "Drev:\"
    Options.DefaultFilePath(Path:=wdStartupPath) = _
        "Drev:\Application Data\Microsoft\Word\STARTUP\"
End Sub

Jeg forestiller mig at der skal åbne en dialogboks der spørger hvilken afdeling brugeren skal indstilles til. Efter svar skal makroen indstille en variabel til denne afdelings bogstavbetegnelse (A, B eller C).
Makroen skal så i den første [Options.DefaultFilePath] indstilles til [Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "Drev:\MAPPE\H_AFD\Institution\=(Variablens værdi)-huset\"]
Avatar billede rvm Nybegynder
04. juni 2006 - 12:24 #1
Skal brugeren spørges hver gang eller ere det kun første gang de skal spørges? Og skal de have muligehd for at ændre valget senere?

Løsningen kunne være en fil, brugeren åbner som gemmer afdelingsnummeret i registrereingsdatabasen under den enkelte bruger, hvorefter din oprindelige makro bruger denne variabel fra registreringsdatabasen. Hvad siger du til den løsning?
Avatar billede perhol Seniormester
04. juni 2006 - 12:58 #2
Filen skal bruges hver gang indstillingerne af den ene eller anden grund 'forsvinder', altså skal der spørges hver gang filen åbnes. Disse indstillinger skal laves særskilt for hver enkelt bruger (pt. 29 fordelt på 3 afdelinger) da systemet opretter en virtuel computer ved hvert login og genopretter indstillinger der gemmes i en fil ved logout. Jeg har ikke adgang til denne fil.
Avatar billede perhol Seniormester
04. juni 2006 - 13:58 #3
Svarene kommer noget langsomt i dag. Gad vide om det kan være fordi det er pinse?
Nu skal jeg imidlertid på arbejde. Vender tilbage til spørgsmålet i morgen og tirsdag.
Avatar billede rvm Nybegynder
04. juni 2006 - 14:33 #4
Ja - det er jo weekend og godt vejr :-)) Du får et forslag til løsningen senere...
Avatar billede rvm Nybegynder
06. juni 2006 - 23:22 #5
Indsæt nedenstående kode i et almindeligt modul i en skabelon. Koden skal køres på alle maskiner, for hver bruger på maskinen. Den gemmer afdelingens bogstav i registreringsdatabasen.

Sub AutoOpen()
Do
    strAfdeling = UCase(InputBox("Indtast afdeling (A,B eller C)", "Afdeling", "A"))
    x = x + 1
Loop Until strAfdeling = "A" Or strAfdeling = "B" Or strAfdeling = "C" Or x = 3

If strAfdeling <> "" Or x < 3 Then
    SaveSetting "Adresse", "Bruger", "Afdeling", strAfdeling
Else
    MsgBox "Afdelingen er ikke blevet gemt"
End If
End Sub

Ret din oprindelige kode til:



strSprogVariabel = GetSetting("Adresse", "Bruger", "Afdeling", "")
[Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "Drev:\MAPPE\H_AFD\Institution\=" & strSprogVariabel & "huset\"]

Mvh

Richardt
Avatar billede perhol Seniormester
07. juni 2006 - 01:22 #6
Det virker ikke. Har jeg gjort noget forkert?
Jeg sætter lige koden ind som den ser ud nu og uden de omskrivninger jeg brugte oprindeligt:
Sub AutoOpen()
Do
    strAfdeling = UCase(InputBox("Indtast afdeling (A,B eller C)", "Afdeling", "A"))
    x = x + 1
Loop Until strAfdeling = "A" Or strAfdeling = "B" Or strAfdeling = "C" Or x = 3

If strAfdeling <> "" Or x < 3 Then
    SaveSetting "Adresse", "Bruger", "Afdeling", strAfdeling
Else
    MsgBox "Afdelingen er ikke blevet gemt"
End If
End Sub
Private Sub Document_Open()
    strSprogVariabel = GetSetting("Adresse", "Bruger", "Afdeling", "")
    Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "G:\INST\PSF\Hoejsletten\=" & strSprogVariabel & "huset\"
    Options.DefaultFilePath(Path:=wdUserTemplatesPath) = _
        "G:\INST\PSF\Hoejsletten\Lokale Skabeloner\"
    Options.DefaultFilePath(Path:=wdWorkgroupTemplatesPath) = _
        "S:\Forvaltning\PSF\"
    Options.DefaultFilePath(Path:=wdAutoRecoverPath) = "W:\"
    Options.DefaultFilePath(Path:=wdStartupPath) = _
        "W:\Application Data\Microsoft\Word\STARTUP\"
End Sub
Avatar billede perhol Seniormester
07. juni 2006 - 01:23 #7
PS.
Jeg får først tid til at kigge ind igen efter kl. 17
Avatar billede rvm Nybegynder
07. juni 2006 - 13:40 #8
Det ser fint ud, men husk at den nye makro skal ligge i en ny fil og i et almindeligt modul - ikke thisdocument.
Avatar billede perhol Seniormester
08. juni 2006 - 00:26 #9
Meningen var at makroen skulle ligge i en alm. excel-fil, ikke i en skabelon.
For at man let kan finde en skabelon kræver det at man er rimeligt hjemmevant i stifinder, det er brugerne på mit arbejde ikke.
Det oprindelige problem er at indstillingerne ofte 'forsvinder' når der bliver lavet om på netværket eller på Citrix, og det gør der temmelig ofte.
Den makro jeg brugte kørte automatisk når filen blev åbnet. Jeg havde så en fil for hvert hus (afdeling). Den løsning jeg søger er, at der kun skal være en fil (ikke en skabelon) hvor en makro kører automatisk når filen åbner, spørger hvilket hus der skal indstilles til, indstiller linien
Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "G:\INST\PSF\Hoejsletten\=" & strSprogVariabel & "huset\"
til det valgte hus (eks. A-huset)og derefter kører resten af makroen.
Sådan som jeg nu har lavet makroen (med dine anvisninger) kører den kun når jeg lægger den i i ThisDocument og indlejrer det hele i en Sub Document_Open().
Der er bare det problem at den ikke indstiller Options.DefaultFilePath(Path:=wdDocumentsPath) = . . . . .  linjen.
I den næste kommentar sætter jeg koden ind som den ser ud nu.
Avatar billede perhol Seniormester
08. juni 2006 - 00:30 #10
Sub Document_Open()
Do
    strAfdeling = UCase(InputBox("Indtast afdeling (A,B eller C)", "Afdeling", "A"))
    x = x + 1
Loop Until strAfdeling = "A" Or strAfdeling = "B" Or strAfdeling = "C" Or x = 3

If strAfdeling <> "" Or x < 3 Then
    SaveSetting "Adresse", "Bruger", "Afdeling", strAfdeling
Else
    MsgBox "Afdelingen er ikke blevet gemt"
End If
    strSprogVariabel = GetSetting("Adresse", "Bruger", "Afdeling", "")
    Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "G:\INST\PSF\Hoejsletten\"strSprogVariabel&"-huset\""
    Options.DefaultFilePath(Path:=wdUserTemplatesPath) = _
        "G:\INST\PSF\Hoejsletten\Lokale Skabeloner\"
    Options.DefaultFilePath(Path:=wdWorkgroupTemplatesPath) = _
        "S:\Forvaltning\PSF\"
    Options.DefaultFilePath(Path:=wdAutoRecoverPath) = "W:\"
    Options.DefaultFilePath(Path:=wdStartupPath) = _
        "W:\Application Data\Microsoft\Word\STARTUP\"

End Sub

Afvikling af makroen standser med en Syntax error i denne linje:
Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "G:\INST\PSF\Hoejsletten\"strSprogVariabel&"-huset\""
Avatar billede perhol Seniormester
08. juni 2006 - 02:05 #11
Efter at have rodet rundt i rigtig mange andre spørgsmål har jeg løst problemet.
Her er den nye kode:

Sub Document_Open()
Dim hus As String

BrugerHus = InputBox("Hvilket hus skal Word indstilles til? (A,B eller C)")
   
    I = BrugerHus & "-huset\"
   
    Options.DefaultFilePath(Path:=wdDocumentsPath) = _
        "G:\INST\PSF\Hoejsletten\" & I
        Options.DefaultFilePath(Path:=wdUserTemplatesPath) = _
        "G:\INST\PSF\Hoejsletten\Lokale Skabeloner\"
    Options.DefaultFilePath(Path:=wdWorkgroupTemplatesPath) = _
        "S:\Forvaltning\PSF\"
    Options.DefaultFilePath(Path:=wdAutoRecoverPath) = "W:\"
    Options.DefaultFilePath(Path:=wdStartupPath) = _
        "W:\Application Data\Microsoft\Word\STARTUP\"

End Sub
Avatar billede rvm Nybegynder
08. juni 2006 - 08:31 #12
Det var godt du fandt ud af det :-) Jeg troede du ikke ville have brugeren skulle spørges hver gang - derfor den lille krølle med at gemme i registreringsdatabasen.

Mvh

Richardt
Avatar billede perhol Seniormester
08. juni 2006 - 10:57 #13
Vi har simpelt hen ikke adgang til at ændre i registreringsdatabasen på mit arbejde.
Din kode havde tilsyneladende ikke nogen virkning overhovedet da jeg testede den.
Jeg fik bare en fejlmelding når koden nåede til den linje hvor den rette mappe skulle indskrives.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Tag et kursus i Word og øg effektiviteten

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester