Avatar billede petzel Novice
17. oktober 2008 - 17:57 Der er 3 kommentarer og
1 løsning

Hjælp til Betinget autostart af makro. og hjælp til afslutning.

Hej, jeg har lavet denne makro, men jeg har behov for lidt hjælp!

1)
Den skal rettes til så den "affyres" automatisk når filen åbnes. men det skal kun ske hvis en eller flere af følgende celler B3,B4,B5,B7,B8 ikke er udfyldt med enden tekst eller tal.

2)
Hvis der svares Nej i sidste msgbox skal den starte forfra.
Hvis der svares Ja skal den afslutte makroen.


Hvordan klare jeg dette???



Public Sub Auto_Open()

' Spørg om navn og skriv det i celle

    Dim navn As String
    navn = InputBox(Prompt:="Goddag, Angiv dit navn", Title:="Test Løn registering")
    Range("B3").Value = navn

' Spørg om første uge og skriv det i celle

    Dim uge As Integer
    uge = InputBox(Prompt:="Oplys lønperiodens første uge", Title:="Test Løn registering")
    Range("B5").Value = uge

' Spørg om Løn nr. og skriv det i celle

    Dim lønnummer As Integer
    lønnummer = InputBox(Prompt:="Oplys løn nr.", Title:="Test Løn registering")
    Range("B4").Value = lønnummer

' Spørg om grund Løn sats og skriv det i celle

    Dim grundløn As Currency
    grundløn = InputBox(Prompt:="Hvad er din grundløn?.", Title:="Test Løn registering")
    Range("B7").Value = grundløn

' Spørg om Service tillæg og skriv det i celle

    Dim servicetillæg As Currency
    servicetillæg = InputBox(Prompt:="Hvad er dit servicetillæg?", Title:="Test Løn registering")
    Range("B8").Value = servicetillæg

' Bekræft oplysninger
    Dim resultat
    resultat = MsgBox(Prompt:="Er oplysningerne korrekte? Navn: " & navn & "  Lønnummer: " & lønnummer & "  Uge: " & uge & "  Grundløn: " & grundløn & "  Servicetillæg: " & servicetillæg, Title:="Test Løn registering", Buttons:=vbYesNo + vbQuestion)
    If resultat = vbYes Then
    End If
    End Sub
Avatar billede kabbak Professor
17. oktober 2008 - 22:30 #1
et bud

Public Sub Auto_Open()
    With Worksheets("Ark1")    ' ret til det arknavn, der skal indtastes på
' Spørg om navn og skriv det i celle
        If .Range("B3") = "" Then
            Dim navn As String
            navn = InputBox(Prompt:="Goddag, Angiv dit navn", Title:="Test Løn registering")
            .Range("B3").Value = navn
        Else
            navn = .Range("B3").Value
        End If
       
        ' Spørg om første uge og skriv det i celle
        If .Range("B5") = "" Then
            Dim uge As Integer
            uge = InputBox(Prompt:="Oplys lønperiodens første uge", Title:="Test Løn registering")
            .Range("B5").Value = uge
        Else
            uge = .Range("B5").Value
        End If
       
        ' Spørg om Løn nr. og skriv det i celle
        If .Range("B4") = "" Then
            Dim lønnummer As Integer
            lønnummer = InputBox(Prompt:="Oplys løn nr.", Title:="Test Løn registering")
            .Range("B4").Value = lønnummer
        Else
            lønnummer = .Range("B4").Value
        End If
       
        ' Spørg om grund Løn sats og skriv det i celle
        If .Range("B7") = "" Then
            Dim grundløn As Currency
            grundløn = InputBox(Prompt:="Hvad er din grundløn?.", Title:="Test Løn registering")
            .Range("B7").Value = grundløn
        Else
            grundløn = .Range("B7").Value
        End If
       
        ' Spørg om Service tillæg og skriv det i celle
        If .Range("B8") = "" Then
            Dim servicetillæg As Currency
            servicetillæg = InputBox(Prompt:="Hvad er dit servicetillæg?", Title:="Test Løn registering")
            .Range("B8").Value = servicetillæg
        Else
            servicetillæg = .Range("B8").Value
        End If

        ' Bekræft oplysninger kommer altid frem
        Dim resultat
        resultat = MsgBox(Prompt:="Er oplysningerne korrekte? Navn: " & navn & "  Lønnummer: " & lønnummer & "  Uge: " & uge & "  Grundløn: " & grundløn & "  Servicetillæg: " & servicetillæg, Title:="Test Løn registering", Buttons:=vbYesNo + vbQuestion)
        If resultat = vbYes Then
        Else
            .Range("B3:B8").ClearContents    ' der svares nej, og alle data slettes
            Auto_Open    ' kalder igen til ny indtastning
        End If
    End With
End Sub
Avatar billede petzel Novice
20. oktober 2008 - 15:21 #2
Det virker
Avatar billede petzel Novice
20. oktober 2008 - 15:25 #3
Hej kabbak..
Send mig lige et par ord, så kan jeg frigive dine 100 point. Kan du løse mit andet problem?? "Makro til Excel, oplistning af værdier."
Avatar billede kabbak Professor
20. oktober 2008 - 16:01 #4
et svar ;-))
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
Kurser inden for grundlæggende programmering

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