Avatar billede lsskaarup Nybegynder
05. september 2006 - 15:23 Der er 2 kommentarer og
1 løsning

Kan ikke fange på alle checkboxe

Jeg er ved at lave en fax-skabelon, hvor man bl.a. skal vinge af i 1 ud af 5 checkboxe. Er ingen af dem vinget af, kan jeg godt fange fejlen, men når en eller flere er vinget af, får jeg kun oprettet dokumentet når den første checkbox er vinget af...

Hvorfor det?
Avatar billede lsskaarup Nybegynder
05. september 2006 - 15:23 #1
Private Sub opret_Click()

On Error Resume Next:

    'afsender
    Dim strAfsender As String
       
    If Not IsNull(Me.afsName) Then
   
        strAfsender = Me.afsName & vbCrLf
   
    End If
   
    If Not IsNull(Me.afsTlf) Then
   
        strAfsender = strAfsender & vbCrLf & "Direkte tel.: " & Me.afsTlf
   
    End If
   
    If Not IsNull(Me.afsMobile) Then
   
        strAfsender = strAfsender & vbCrLf & "Mobil tlf.: " & Me.afsMobile
   
    End If
   
    If Not IsNull(Me.afsMail) Then
   
        strAfsender = strAfsender & vbCrLf & "Mail: " & Me.afsMail
   
    End If
   
    'Tjek for om alle nødvendige modtagerinfo er udfyldt, ellers oprettes dokumentet ikke.
    If faxStartBoks.tbAtt.Value = "" Then
        MsgBox "Du har ikke udfyldt attention-feltet"
    ElseIf faxStartBoks.tbModtager.Value = "" Then
        MsgBox "Du har ikke udfyldt modtageren af faxen"
    ElseIf faxStartBoks.tbModtagerFax.Value = "" Then
        MsgBox "Du har glemte at udfylde fax-nr"
    ElseIf faxStartBoks.cbVigtigt.Value = False Then
        If faxStartBoks.cbSvar.Value = False Then
            If faxStartBoks.cbKommentar.Value = False Then
                If faxStartBoks.cbGennemsyn.Value = False Then
                    If faxStartBoks.cbInformation.Value = False Then
                        MsgBox "Du har ikke udfyldt én af følgende 5 punkter: Vigtigt, Svar udbedes, Kommetar udbedes, Til gennemsyn eller Til information."
                    End If
                End If
            End If
        End If
    ElseIf faxStartBoks.tbSidetal.Value = "" Then
        MsgBox "Du har ikke udfyldt sideantallet"
  ' ElseIf sprog = "" Then
    '    MsgBox "Du har ikke valgt et sprog til stavekontrollen"
    Else
    'End If
   
        Set Range = ActiveDocument.Range
        If sprog = "dansk" Then
            Range.LanguageID = wdDanish
        ElseIf sprog = "engelsk" Then
            Range.LanguageID = wdEnglishUK
        ElseIf sprog = "tysk" Then
            Range.LanguageID = wdGerman
        End If
       
        ' Checkboxene
        If cbGennemsyn.Value = True Then
            ActiveDocument.FormFields("gennemsyn").CheckBox.Value = Checked
        End If
           
        If cbKommentar.Value = True Then
            ActiveDocument.FormFields("kommentar").CheckBox.Value = Checked
        End If
           
        If cbInformation.Value = True Then
            ActiveDocument.FormFields("information").CheckBox.Value = Checked
        End If
   
        If cbSvar.Value = True Then
            ActiveDocument.FormFields("svar").CheckBox.Value = Checked
        End If
       
        If cbVigtigt.Value = True Then
            ActiveDocument.FormFields("vigtigt").CheckBox.Value = Checked
        End If
       
        'hilsen
        ActiveDocument.FormFields("hilsen").Range.Text = hilsen
       
        'afsender
        ActiveDocument.FormFields("afsender").Range.Text = strAfsender
   
        'modtagerfimra
        Dim strModtager As String
        strModtager = faxStartBoks.tbModtager.Value
        ActiveDocument.FormFields("modtager").Range.Text = strModtager
   
        'modtagerperson
        ActiveDocument.FormFields("att").Range.Text = faxStartBoks.tbAtt.Value

        'Vedrørende/overskrift
        ' ActiveDocument.FormFields("overskrift").Range.Text = faxStartBoks.tbOverskrift.Value

        'modtagerfax
        ActiveDocument.FormFields("fax").Range.Text = faxStartBoks.tbModtagerFax.Value

        'brev
        'ActiveDocument.FormFields("tekst").Range.Text = faxStartBoks.tbFax.Text
     
        'side
        ActiveDocument.FormFields("sideantal").Range.Text = faxStartBoks.tbSidetal.Text
     
        'Skjuler formen
        faxStartBoks.Hide
           
        ActiveDocument.ActiveWindow.View.Type = wdPrintView
           
        'Udføre stavekontrol
        Range.CheckSpelling
           
        'Sætte Word til automatisk at detektere sproget, hvis der skrives mere
        Application.CheckLanguage = True
           
        'Gem dokument
        ActiveDocument.Save
           
        ActiveDocument.ActiveWindow.View.Type = wdPrintView
   
    End If
End Sub
Avatar billede fobian Nybegynder
09. september 2006 - 01:03 #2
Jeg har rettet lidt i koden og oprettet en variabel - Mangler. Hvis der er bare en af testene, som giver udslag, vil der komme en msgbox med fejlen. Hvis der er flere der giver udslag vil alle teksterne komme i en msgbox. Den efterfølgende kode vil ikke blive kørt, hvis Mangler er forskellig fra "". Jeg har ikke testet koden, da jeg ikke har oprettet faxformen, men den burde kunne køre - måske med en enkelt tilretning...

Private Sub opret_Click()

On Error Resume Next:

    'afsender
    Dim strAfsender As String
       
    If Not IsNull(Me.afsName) Then
   
        strAfsender = Me.afsName & vbCrLf
   
    End If
   
    If Not IsNull(Me.afsTlf) Then
   
        strAfsender = strAfsender & vbCrLf & "Direkte tel.: " & Me.afsTlf
   
    End If
   
    If Not IsNull(Me.afsMobile) Then
   
        strAfsender = strAfsender & vbCrLf & "Mobil tlf.: " & Me.afsMobile
   
    End If
   
    If Not IsNull(Me.afsMail) Then
   
        strAfsender = strAfsender & vbCrLf & "Mail: " & Me.afsMail
   
    End If
    'Fobian kode start
    Dim Mangler As String
    'Tjek for om alle nødvendige modtagerinfo er udfyldt, ellers oprettes dokumentet ikke.
    If faxStartBoks.tbAtt.Value = "" Then Mangler = "Du har ikke udfyldt attention-feltet"
    If faxStartBoks.tbModtager.Value = "" Then Mangler = Mangler & vbLf & "Du har ikke udfyldt modtageren af faxen"
    If faxStartBoks.tbModtagerFax.Value = "" Then Mangler = Mangler & vbLf & "Du har glemte at udfylde fax-nr"
   
    If faxStartBoks.cbVigtigt.Value = False _
    Or faxStartBoks.cbSvar.Value = False _
    Or faxStartBoks.cbKommentar.Value = False _
    Or faxStartBoks.cbGennemsyn.Value = False _
    Or faxStartBoks.cbInformation.Value = False _
    Then Mangler = Mangler & vbLf & "Du har ikke udfyldt én af følgende 5 punkter: Vigtigt, Svar udbedes, Kommetar udbedes, Til gennemsyn eller Til information."
   
    If faxStartBoks.tbSidetal.Value = "" Then Mangler = Mangler & vbLf & "Du har ikke udfyldt sideantallet"
  ' ElseIf sprog = "" Then
    '    MsgBox "Du har ikke valgt et sprog til stavekontrollen"
    If Mangler <> "" Then
        MsgBox Mangler
    'Fobian kode slut
    Else
    'End If
   
        Set Range = ActiveDocument.Range
        If sprog = "dansk" Then
            Range.LanguageID = wdDanish
        ElseIf sprog = "engelsk" Then
            Range.LanguageID = wdEnglishUK
        ElseIf sprog = "tysk" Then
            Range.LanguageID = wdGerman
        End If
       
        ' Checkboxene
        If cbGennemsyn.Value = True Then
            ActiveDocument.FormFields("gennemsyn").CheckBox.Value = Checked
        End If
           
        If cbKommentar.Value = True Then
            ActiveDocument.FormFields("kommentar").CheckBox.Value = Checked
        End If
           
        If cbInformation.Value = True Then
            ActiveDocument.FormFields("information").CheckBox.Value = Checked
        End If
   
        If cbSvar.Value = True Then
            ActiveDocument.FormFields("svar").CheckBox.Value = Checked
        End If
       
        If cbVigtigt.Value = True Then
            ActiveDocument.FormFields("vigtigt").CheckBox.Value = Checked
        End If
       
        'hilsen
        ActiveDocument.FormFields("hilsen").Range.Text = hilsen
       
        'afsender
        ActiveDocument.FormFields("afsender").Range.Text = strAfsender
   
        'modtagerfimra
        Dim strModtager As String
        strModtager = faxStartBoks.tbModtager.Value
        ActiveDocument.FormFields("modtager").Range.Text = strModtager
   
        'modtagerperson
        ActiveDocument.FormFields("att").Range.Text = faxStartBoks.tbAtt.Value

        'Vedrørende/overskrift
        ' ActiveDocument.FormFields("overskrift").Range.Text = faxStartBoks.tbOverskrift.Value

        'modtagerfax
        ActiveDocument.FormFields("fax").Range.Text = faxStartBoks.tbModtagerFax.Value

        'brev
        'ActiveDocument.FormFields("tekst").Range.Text = faxStartBoks.tbFax.Text
     
        'side
        ActiveDocument.FormFields("sideantal").Range.Text = faxStartBoks.tbSidetal.Text
     
        'Skjuler formen
        faxStartBoks.Hide
           
        ActiveDocument.ActiveWindow.View.Type = wdPrintView
           
        'Udføre stavekontrol
        Range.CheckSpelling
           
        'Sætte Word til automatisk at detektere sproget, hvis der skrives mere
        Application.CheckLanguage = True
           
        'Gem dokument
        ActiveDocument.Save
           
        ActiveDocument.ActiveWindow.View.Type = wdPrintView
   
    End If
End Sub
Avatar billede lsskaarup Nybegynder
11. september 2006 - 16:11 #3
Yes, det virkede, jeg skulle dog lige rette Or til And, så den kun fanger når ingen af dem er udfyldt. 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
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