Avatar billede syskim Nybegynder
31. oktober 2001 - 13:08 Der er 13 kommentarer og
2 løsninger

Makro, der sætter brugerID ind i sidehoved/sidefod

Jeg har brug for en makro, der kan sætte brugerID ind i et worddokuments sidehoved eller sidefod. Det virker ikke når jeg bruger autotekstfunktionen forfatter. Oplysningen ligger i Denne Computer\\HKEY_LOCAL_MACHINE\\Network\\logon i \"username\".
Kan den oplysning \"gafles\" på en eller anden måde?

Eller skal problemet angribes på en anden måde?
Avatar billede godlike2k Nybegynder
31. oktober 2001 - 13:13 #1
Du kan lave et standard worddokument og åbne det i notepad! Der skulle du kunne finde en kode som du kan kopiere ved hjælp af
\'Ved ikke om det virker fuldt!
open \"\" for output as #1
print #1,
close #1
Avatar billede michaelprehn Nybegynder
31. oktober 2001 - 14:39 #2
Du har vel prøvet:
Sub brugernavn()
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=  \"USERNAME \"
End Sub

mvh
Michael
Avatar billede Slettet bruger
31. oktober 2001 - 14:55 #3
Prøv med denne her:
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _
        \"USERINITIALS  \\* Upper \", PreserveFormatting:=True
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocum

\\\\AMH
Avatar billede syskim Nybegynder
01. november 2001 - 14:03 #4
>>godlike>>: Jeg må indrømme, at jeg ikke kan følge din tankegang, så jeg har ikke kunnet efterprøve din idé. Men hvis den indebærer, at brugeren skal åbne et andet program end Word, er det ikke noget, jeg kan bruge.
Avatar billede syskim Nybegynder
01. november 2001 - 14:05 #5
>>michaelprehn>> Din rutine virker tilsyneladende, men så vidt jeg kan se, sætter Word blot licenshaverens navn ind og ikke brugerID på den bruger, der er logget på.
Avatar billede syskim Nybegynder
01. november 2001 - 14:12 #6
>>amh>> Da jeg prøvede din rutine på min private pc, virkede den. Men nu, hvor jeg sidder ved en af de maskiner, hvor den skal bruges, giver den en fejlmelding: \"Run-time error \'91\':  Object variable or With block variable not set\".
Det kan jeg ikke lige regne ud hvorfor. Jeg kan nævne, at min pc er en stand-alone, men rutinen skal fungere på en række pc\'er på en skole sat op i et netværk.
01. november 2001 - 14:46 #7
hvilket styresystem kører dine pc\'er ?
NT, Win95, 98 eller 2000 ?
Avatar billede Slettet bruger
01. november 2001 - 14:58 #8
Hvilken officepakke bruger der hvor fejlen kommer?
Avatar billede syskim Nybegynder
01. november 2001 - 16:29 #9
Begge pc\'er har Win98 og Office 2000.
Serveren har NT.
Avatar billede Slettet bruger
02. november 2001 - 08:22 #10
Min makro er ikke til Office 2000 med XP.
Men indspil selv en ny makro i din office 2000, hvor du skal gøre følgende:

Gå til Sidehoved el. sidefod
Indstil formatingen til højre, venstre el. midt
Tryk så på Indsæt i menulinien og vælg Felt, derefter vælges Nummerering.
Indsæt feltet PAGE (SIDE) og skriv af sider og indsæt derefter feltet SECTIONPAGES (SEKTIONENSIDER).
Luk sidefoden og afslut makroen.

Herefter skulle resultatet være som den makro, jeg sendte dig.
\\\\AMH
Avatar billede bak Seniormester
02. november 2001 - 16:02 #11
Min makro er meget lig AMH\'s men kalder en makrofuktion mere. Den virker på standalone og net, men det skulle AMH\'s også.:Option Explicit
\' This is used by GetUserName() to find the current user\'s
\' name from the API
Declare Function Get_User_Name Lib \"advapi32.dll\" Alias _
                \"GetUserNameA\" (ByVal lpBuffer As String, _
                nSize As Long) As Long
Function GetUserName() As String
    Dim lpBuff As String * 25

    Get_User_Name lpBuff, 25
    GetUserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
End Function
Sub Makro()
    If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
        ActiveWindow.Panes(2).Close
    End If
    If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
        ActivePane.View.Type = wdOutlineView Then
        ActiveWindow.ActivePane.View.Type = wdPrintView
    End If
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.TypeText Text:=GetUserName()
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

Avatar billede bak Seniormester
06. november 2001 - 08:38 #12
syskim> fik du løst dit problem??
Avatar billede syskim Nybegynder
06. november 2001 - 17:31 #13
Jeg får set på det på torsdag.
Avatar billede syskim Nybegynder
08. november 2001 - 14:14 #14
De makroer, jeg har fået af jer, har det voldt mig lidt probelmer at få til at køre på \"mit\" netværk. Men jeg blevet så klog, at nu kan jeg selv få lavet noget, jeg kan bruge. Takker for hjælpen med 25 p. til hver.
Avatar billede Slettet bruger
08. november 2001 - 14:20 #15
Tak for point - problemerne skyldes sikket versions konflikter, da der i dag er mange forskellige versioner i brug rundt omkring.
\\\\AMH
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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