Avatar billede sjomka2001 Nybegynder
01. oktober 2010 - 18:56 Der er 11 kommentarer og
1 løsning

VBA workbook

Jeg kan simpelthen ikke finde ud af det!
Hvordan får jeg kombineret en velkomst
afhængigt af tidspunkt med brugers navn?

Msg skulle gerne komme som
Good Morning Sjomka
Good Afternoon Sjomka...


Private Sub Workbook_open()
Dim Msg As String
If Time < 0.5 Then Msg = "Morning"
If Time >= 0.5 And Time < 0.75 Then Msg = "Afternoon"
If Time >= 0.75 Then Msg = "Evening"
MsgBox "Good " & Msg
Msg = "Is your name " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then MsgBox "OK - give a shit anyway :-)"
If Ans = vbYes Then MsgBox "I wish you a happy day at work."
End Sub
Avatar billede Thyge Nybegynder
01. oktober 2010 - 19:14 #1
Det virker umiddelbart ok for mig, som det er skrevet nu. Hvad er det præcist at du ønsker?

Hvis det er fordi at "Sjomka" ikke fremkommer er det sikkert fordi at dit username ikke er angivet korrekt.
Avatar billede sjomka2001 Nybegynder
01. oktober 2010 - 19:30 #2
Ok - jeg var nok lidt uklar. Jeg vil gerne have

If Time < 0.5 Then Msg = "Morning" KOMBINERET MED
Application.UserName & "?"

Det skulle gerne munde ud i at, når vedkommende åbner excelarket, byder man velkommen med f.eks Godmorgen + Navn
Avatar billede Thyge Nybegynder
01. oktober 2010 - 20:01 #3
Hvis jeg forstår det rigtigt, så mangler du bare et "&".

Udskrift:
MsgBox "Good " & Msg (linje 6)
med
MsgBox "Good " & Msg & Application.UserName


Du kan evt. også vælge at undlade den ene MsgBox ved følgende:

Private Sub Workbook_Open()
Dim Msg As String
Dim EndMsg As String
If Time < 0.5 Then Msg = "morning!"
If Time >= 0.5 And Time < 0.75 Then Msg = "afternoon!"
If Time >= 0.75 Then Msg = "evening!"
EndMsg = "Good " & Msg & Chr(10) & Chr(10) & "Is your name " & Application.UserName & "?"
Ans = MsgBox(EndMsg, vbYesNo)
If Ans = vbNo Then MsgBox "OK - give a shit anyway :-)"
If Ans = vbYes Then MsgBox "I wish you a happy day at work."
End Sub
Avatar billede sjomka2001 Nybegynder
04. oktober 2010 - 17:19 #4
Funker perfekt. Læg et svar! Og tak for hjælpen :-)
Avatar billede Thyge Nybegynder
04. oktober 2010 - 17:47 #5
Super! svar..
Avatar billede sjomka2001 Nybegynder
04. oktober 2010 - 17:51 #6
Et tillægsspm. Hvordan får jeg lavet en besked, når bruger lukker excel? Der skal gerne komme en besked a la:

Har du husket at checke om det du har lavet er korrekt?

Hvis der svares ja -> Besked om at du har checket.
Hvis der svares nej -> Besked om at du skal checke igen

Hvis efter besked om ja -> gemmes og lukkes arket
Hvis efter besked om nej -> arket kan ikke lukkes
Avatar billede tjacob Juniormester
04. oktober 2010 - 18:05 #7
Du bruger samme teknik som nævnt ovenfor.
Koden lægges i BeforeClose eventet. Eksempel:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If MsgBox("Ønsker du at lukke", vbYesNo) = vbNo Then Cancel = True

End Sub
Avatar billede sjomka2001 Nybegynder
04. oktober 2010 - 18:37 #8
Jeg er "lidt" tungnem :-)

Hvordan får jeg excel til at spørge bruger om han/hun er sikker på at det han/hun har lavet er rigtigt? Og det vil jeg gerne have lavet:

Hej igen Application.UserName. Jeg kan se, at du vil afslutte. Er du sikker på at du har lavet det korrekt?

Svar JA/NEJ

Hvis Ja -> Afslut og gem excel
Hvis Nej-> Check det igen

Når der er valgt JA i om bruger er sikker gemmes.

Hvordan vil den vba se ud?
Avatar billede tjacob Juniormester
04. oktober 2010 - 18:55 #9
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If MsgBox("Hej igen " & Application.UserName & ". Jeg kan se at du vil afslutte." & _
            vbCrLf & "Er du sikker på at du har lavet det rigtigt?", vbYesNo) = vbNo Then
        MsgBox ("Check det igen.")
        Cancel = True
    End If

End Sub

Excel vil selv spørge om der skal gemmes, hvis der er lavet nogen ændringer.
Avatar billede sjomka2001 Nybegynder
04. oktober 2010 - 19:09 #10
Super. Hvordan giver jeg point for det?
Avatar billede tjacob Juniormester
05. oktober 2010 - 12:40 #11
Ikke nødvendigt.
Avatar billede sjomka2001 Nybegynder
07. oktober 2010 - 19:03 #12
Tusind tak for hjælpen. Og så (selvfølgelig!) lige et ekstra spm.

Kan man ændre denne til;

1) Hvis bruger har ændret et eller andet sted i workbook, skal bruger bekræfte, at ændringen er korrekt jf. nedenstående.

2) Hvis bruger alene åbner workbook og derefter lukker workbook, skal der komme en meddelse a la "Dejligt at se dig. Jeg kan se, at du ikke har ændret noget! Jeg lukker uden at gemme"

Dette er den nedenstående :-)
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If MsgBox("Hej igen " & Application.UserName & ". Jeg kan se at du vil afslutte." & _
            vbCrLf & "Er du sikker på at du har lavet det rigtigt?", vbYesNo) = vbNo Then
        MsgBox ("Check det igen.")
        Cancel = True
    End If

End Sub
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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