Avatar billede logsuppe Nybegynder
15. december 2005 - 11:17 Der er 20 kommentarer og
1 løsning

Vise pågældende brugernavn ved åbning af dokument

Kunne godt tænke mig at lave et felt i et Word-dokument, som hver gang man åbner dokumentet, viser brugernavnet for den bruger der aktuelt er logget på.

Når jeg siger Indsæt > Felt > UserName, viser den brugernavnet der er angivet til Office. Det er ikke det jeg skal bruge!
Avatar billede supertekst Ekspert
15. december 2005 - 11:22 #1
Prøv med dette:
Public Sub getLogOn()
    brugerID = System.PrivateProfileString("", _
    "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\explorer", "logon user name")
End Sub
Avatar billede logsuppe Nybegynder
15. december 2005 - 11:27 #2
og hvordan skal det lige sættes ind?
Avatar billede supertekst Ekspert
15. december 2005 - 11:33 #3
Skriv en makro i VBA (Alt+F11) med navnet AutoOpen - f.eks.:
Aktiveres nå dokumentet Åbnes - husk indstilling af Sikkerhedsniveau - laveste

sub AutoOpen   
    brugerID = System.PrivateProfileString("", _
    "HKEY_CURRENT_USER\software\microsoft\windows\currentversion\explorer", "logon user name")

  msgbox(brugerID)
end sub
Avatar billede jkrons Professor
15. december 2005 - 11:38 #4
Eller nemmere

Udskrift smøren mellem Sub AutoOpen og End Sub  med

MsgBox Environ("username")
Avatar billede logsuppe Nybegynder
15. december 2005 - 12:02 #5
så virker det jo kun på min egen pc! - formålet med det er at åbne dokumentet på brugerens pc. Dokumentet indeholder hendes brugernavn, nye adgangskode, samt logondomæne. Så istedet for at jeg manuelt skal skrive hendes brugernavn ind i feltet, kunne det være smart hvis den gjorde det selv...
Avatar billede logsuppe Nybegynder
15. december 2005 - 12:05 #6
*hans/hendes
Avatar billede logsuppe Nybegynder
15. december 2005 - 12:10 #7
Lidt info hvis i ikke forstår hvad jeg mener.
Dokumentet ser således ud:

Første gang du logger på:

Brugernavn:    <brugernavn>
Kodeord:      ***********
Domæne:        LOGONSERVER


feltet <brugernavn> skal altså automatisk udskiftes til den bruger der er logget på, når man åbner dokumentet!
Avatar billede jkrons Professor
15. december 2005 - 12:34 #8
Måske er det batre mig - men det virker lisdt meningsløst at sende et brev på e-mail til folk, som fortæller hvilet brugernavn, de skal bruge for at logge på.

I øvrigt virker Environ("username") uanset hvilken pc, der er tale om. Så i stederv for MSGBOX skal du bare erstatte med kode, der indsætter teksten i dokumentet.

En mulighed er, at du skriver fx

Brugernavn:    username
Kodeord:      ***********
Domæne:        LOGONSERVER

i brevet og så bruger denne kode

Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "usrname"
        .Replacement.Text = Environ("username")
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
Avatar billede jkrons Professor
15. december 2005 - 12:39 #9
Sorry, der mangler et "e".

Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "username"
        .Replacement.Text = Environ("username")
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
Avatar billede falster Ekspert
15. december 2005 - 12:55 #10
Uanset formålet, så havde de noget lignende oppe her

http://www.eksperten.dk/spm/188556

Et simpelt eksempel - med tekstbox:

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
    "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
   
Function fWin2KUserName() As String
    Dim lngLength As Long, lngX As Long
    Dim strUserName As String
    strUserName = String$(254, 0)
    lngLength = 255
    lngX = apiGetUserName(strUserName, lngLength)
    If lngX <> 0 Then
        fWin2KUserName = Left$(strUserName, lngLength - 1)
    Else
        fWin2KUserName = "Ukendt bruger"
    End If
End Function

Private Sub CommandButton1_Click()
TextBox1.Text = fWin2KUserName()
End Sub
Avatar billede logsuppe Nybegynder
15. december 2005 - 13:04 #11
jkrons> jeg skal heller ikke sende brevet til dem på mail. Hele ideen med brevet, er fordi vi ominstallerer alle vores pc'ere fra vores gamle nt-domæne til AD. Brugerne får altså en ny brugerkonto (nogle endda et helt nyt brugernavn). Når jeg har installeret deres maskine logger jeg på med deres brugernavn, finder dokumentet, og udskriver det til dem...
Avatar billede logsuppe Nybegynder
15. december 2005 - 13:13 #12
...desuden kan jeg ikke få det til at virke!
Avatar billede jkrons Professor
15. december 2005 - 13:22 #13
Så er jeg med.

Det virker fint hos mig, så kan du evt. prøve at forklare, hvad der sker hos dig?
Avatar billede logsuppe Nybegynder
15. december 2005 - 13:54 #14
Jeg opretter et nyk dokument, skriver username i det, Alt + F11, View Code, Indsætter din kode, gemmer, lukker alt, åbner dokumenter, og så står der bare stadig username
Avatar billede jkrons Professor
15. december 2005 - 14:53 #15
Prøv med denne kode:

Private Sub Document_Open()
Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "username"
        .Replacement.Text = Environ("username")
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub


Men husk, at det ikek er ligegyldigt, hvor du indsætter den. Den SKAL placeres i ThisDocument modulet, for det dokument, det drejser sig om - ikke i et at normal.dots moduler.

Og husk, at sikkerhedsniveauet højest må være sat til Mellem.
Avatar billede logsuppe Nybegynder
15. december 2005 - 15:12 #16
Den sidste virkede... men så kommer problemet jo med sikkerhedsniveauet! Kan jo ikke sidde og ændre det hver gang jeg skal åbne dokumentet på en klient!
Avatar billede logsuppe Nybegynder
15. december 2005 - 15:17 #17
Hmm, det virker åbentbart alligevel på klienterne! Men det er også kun Office 97 vi kører med der, det er kun i Office 2003 man skal ændre sikkerhedsniveauet!!!

Nå smid et svar, og der er point på vej!
Avatar billede jkrons Professor
15. december 2005 - 15:18 #18
Godt det virker.
Avatar billede logsuppe Nybegynder
15. december 2005 - 15:21 #19
Nu jeg lige har dig, kan det så ikke også lade sig gøre, at undgå at den kommer og spørger om dokumentet vil gemmes når man lukker det? - Den skal simpelthen bare lade være med at gemme uden at spørge om det...
Avatar billede jkrons Professor
15. december 2005 - 15:55 #20
Tilføj

activedocument.saved = true

sidst i koden :-0
Avatar billede logsuppe Nybegynder
08. februar 2006 - 15:17 #21
takker!!!
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