Avatar billede soeren_soelv Novice
05. februar 2009 - 13:19 Der er 1 kommentar

Lettere indtastning i userform ved at vælge fra MsgBox

Hej...

Jeg er ved at lave om på en userform, som jeg bruger til registrering af fejl. Systemet virker ved at brugeren indtaster en række parametre omkring fejlen. For at få så entydige indtastninger som muligt bruger jeg en MsgBox til at vise de sidste 5 indtastninger, af den konkrete fejltype. Mere præcist - der er en drop-down-menu hvor i der er defineret en række fejl. Når brugeren så vælger den konkrete fejltype kommer der en MsgBox med de 3 centrale parameter for de 5 sidste fejl af denne type. Jeg vil dog gerne have at der kommer en ny funktionalitet i form af, at brugeren skal kunne vælge en af de sidste 5 fejl. De 3 centrale parametre for den valgte fejl skal så udfyldes i formen.

Håber det gav mening ellers spørg endeligt.

Kode for MsgBox, hvis det giver mere klarhed:

Option Base 1
Const startRæk = 2


'Tjekker om der er oprettet en bemærkning til Procestrin i arket DATA

Private Sub cboProces_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim bemærk As String, ark As Worksheet
    Application.ScreenUpdating = False
    Sheets("Data").Unprotect Password:="XXXXXX"
    Set ark = ActiveWorkbook.Sheets("Data")
    ark.Activate
    antalræk = ActiveCell.SpecialCells(xlLastCell).Row
   
    If Me.cboProces <> "" Then
            bemærk = findesProces(startRæk, antalræk, Me.cboProces)
            If bemærk <> "" Then
                MsgBox ("De 5 nyeste " + Me.cboProces + "problemer" + vbCr + bemærk)
            End If
    End If
    Sheets("Data").Protect Password:="XXXXXX"
End Sub


Private Function findesProces(startRæk, slutRæk, proces)
    Dim tæller
    tæller = 0
    Application.ScreenUpdating = False
    Sheets("Data").Unprotect Password:="XXXXXX"
    findesProces = ""
    For ræk = startRæk To slutRæk
        If CStr(Cells(ræk, 3)) = proces Then
        tæller = tæller + 1

'Tilføj kun bemærkning, hvis denne eksisterer

            If Cells(ræk, 3) <> "" And tæller < 6 Then
                findesProces = findesProces + "Konstateret:  " + Cells(ræk, 9) + vbCr + "Konsekvens:  " + Cells(ræk, 10) + vbCr + "Årsag:  " + Cells(ræk, 11) + vbCr + vbCr
            End If
        End If
    Next ræk
    Sheets("Data").Protect Password:="XXXXXX"
End Function
Avatar billede excelent Ekspert
05. februar 2009 - 18:31 #1
Har du mulighed for at sende filen ?
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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