Avatar billede nemlig Professor
14. august 2008 - 21:52 Der er 8 kommentarer og
1 løsning

VB - MsgBox med flere fejlmeddelelser

Hej. Jeg har et ark, hvor der er en række krav til indtastninger.
Når brugeren er færdig med indtastninger, klikkes på en knap, så der fortsættes til næste ark.
Men jeg tjekker først om, alle krav til indtastninger er opfyldt.
Jeg bruger lige nu denne kode:

If Worksheets("Grund").Range("h16") =  1 Then
  MsgBox "Du har ikke udfyldt xxxx. Tryk på OK og ret fejlen!"
  Sheets("Grund").Visible = True
  Sheets("Grund").Select
  Exit Sub
End If

Og så fortsætter jeg med næste tjek.
Men det var smartere, hvis alle min tjek vises i samme MsgBox.

Mon der findes en smartere løsning?
Avatar billede jkrons Professor
14. august 2008 - 21:56 #1
Start med at udføredet første check. Hvis der skal gives en meddelelse, gemmer du denne i en streng-variabel. I modsat fald lader variablen stå tom. Fortsæt med næste check på samme måde.

Når alle check er udført, lader du en IF funktion gennemløbe variabler og undersøge om de er tomme, og derefter skriver du de ikke tomme til din MSGBOX.
Avatar billede nemlig Professor
14. august 2008 - 22:06 #2
Nu kender jeg ikke så meget til VB.

If Worksheets("Grund").Range("h16") =  1 Then
  $fejl1 = "Du skal udfylde navn"
End If
If Worksheets("Grund").Range("h17") =  1 Then
  $fejl1 = "Du skal udfylde adressen"
End If

Men hvordan jeg så tjekker variablerne for indhold og derefter lister dem i MsgBox ved jeg ikke. Jeg er mere hjemme i PHP.
Avatar billede jkrons Professor
14. august 2008 - 22:54 #3
If Worksheets("Grund").Range("h16") =  1 Then
  $fejl1 = "Du skal udfylde navn"
End If
If Worksheets("Grund").Range("h17") =  1 Then
  $fejl2 = "Du skal udfylde adressen"
End If
If Len($fejl1) <> 0 Then medtxt = $fejl1
If Len($fejl2) <> 0 Then medtxt = medtxt & vbCrlf & $fejl2

Msgbox medtxt, vbOkOnly + vbCritical
Avatar billede nemlig Professor
14. august 2008 - 23:15 #4
Jeg har rettet lidt, da variablerne åbenbart defineres uden $-tegnet.
Men hvis der ingen fejl er, så vises en tom MsgBox.
Mangler der noget "End if". Jeg har prøvet lidt, men har ikke kunnet løse det.
Koden ser sådan her ud:

Sub Skift_til_Efterløn()
If Worksheets("Grundoplysninger").Range("a47") = 1 Then
  FEJL1 = "Du skal udfylde navn"
End If
If Worksheets("Grundoplysninger").Range("a48") = 1 Then
  FEJL2 = "Du skal udfylde adressen"
End If
If Worksheets("Grundoplysninger").Range("a49") = 1 Then
  FEJL3 = "Du skal udfylde tlfnr."
End If
If Len(FEJL1) <> "" Then medtxt = FEJL1
If Len(FEJL2) <> "" Then medtxt = medtxt & vbCrLf & FEJL2
If Len(FEJL3) <> "" Then medtxt = medtxt & vbCrLf & FEJL3
MsgBox medtxt, vbOKOnly + vbCritical
  Sheets("Grundoplysninger").Visible = True
  Sheets("Grundoplysninger").Select
  Exit Sub
End Sub
Avatar billede nemlig Professor
15. august 2008 - 08:19 #5
Så fik jeg det til at køre, ved nogle mindre omskrivninger.
Koden ser sådan her ud nu:

If Worksheets("Grundoplysninger").Range("a47") = 1 Then
  FEJL1 = "Du skal udfylde navn" & vbCrLf
End If
If Worksheets("Grundoplysninger").Range("a48") = 1 Then
  FEJL1 = FEJL1 & "Du skal udfylde adressen" & vbCrLf
End If
If Worksheets("Grundoplysninger").Range("a49") = 1 Then
  FEJL1 = FEJL1 & "Du skal udfylde tlfnr."
End If
If FEJL1 <> "" Then
MsgBox FEJL1, vbOKOnly + vbCritical

  Sheets("Grundoplysninger").Visible = True
  Sheets("Grundoplysninger").Select
  Exit Sub
End If

Tak for bidragene og inspirationerne. Send venligst et svar.
Avatar billede nemlig Professor
11. september 2008 - 10:45 #6
Jeg mangler lige et svar - så jeg kan tildele point.
Avatar billede nemlig Professor
29. november 2008 - 22:54 #7
Så er det snart lukketid.
Avatar billede jkrons Professor
30. november 2008 - 11:07 #8
Et svar :_)
Avatar billede nemlig Professor
30. november 2008 - 11:29 #9
Det var fint - Tak for hjælpen
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