• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Meerdere msgbox'en

Status
Niet open voor verdere reacties.

snitsel

Gebruiker
Lid geworden
12 feb 2008
Berichten
199
Beste

Ik heb een korte vba code geschreven in excel 2007.
Het is de bedoeling dat er 3 cellen moeten worden ingevuld.
Als de cellen niet zijn ingevuld, wil ik voor elk apart een msgbox krijgen.
Ik wil dus niet werken met AND of OR.

Als cel B13, H13 en N13 niet zijn gevuld wil ik bij een klik op de macro-knop 3 msgboxen tevoorschijn zien komen in 1 keer ofwel na onmiddelijk na elkaar.

Code:
    If ActiveSheet.Range("H13") = 0 Then
        MsgBox "U heeft nog geen dossiernummer ingevuld!", vbExclamation, "Geen dossiernummer!"
    End If
    
    If ActiveSheet.Range("B13") = ".../WA/CB" Then
        MsgBox "Gelieve O.Ref. in te vullen", vbExclamation, "Geen referentie!"
    End If

    If ActiveSheet.Range("N13") = "-" Then
        MsgBox "Gelieve handler in te vullen", vbExclamation, "Geen handler!"
    End If

Hopelijk kan er mij iemand helpen.

Mvg
 
Als je ze alledrie in één keer wilt tonen kun je ze m.i. beter op een userform plaatsen en dan deze tonen.

mvg groet
René
 
foutje mijnerzijds, ik was in de veronderstelling dat je ook meteen de optie wilde hebben om een correct invoer te doen.

Mvg
René
 
De Dim en de With zijn niet nodig in deze code.
De vetgedrukte code kunnen dus weg zonder dat de gehele code moet worden aangepast.

Code:
Private Sub CommandButton1_Click()

[B]Dim Continue As Boolean

With ActiveSheet[/B]
If ActiveSheet.Range("D7") = "" Then
    MsgBox "Controle", vbExclamation, "Foutieve waarde"

    Else
[B]        Continue = True[/B]
            If ActiveSheet.Range("D8") = "Test 1" Then
                MsgBox "Bestelnummer", vbExclamation, "Foutieve waarde"
            End If
            If ActiveSheet.Range("D9") = 0 Then
                MsgBox "Dossiernummer", vbExclamation, "Foutieve waarde"
            End If
            If ActiveSheet.Range("D10") = "-" Then
                MsgBox "Handler", vbExclamation, "Foutieve waarde"
            End If

End If
[B]
End With[/B]

End Sub

Met vriendelijke groet,


Roncancio
 
Dank je wel Roncancio.

ik heb uiteindelijk de code aangepast en ben tot het volgende resultaat gekomen die werkt maar ik dacht dat het volgende mss wel korter geschreven kon worden:

Code:
Sub Opslaan_Cadserver_2xprint()

With ActiveSheet
    If .Range("A4") = "" Then
    MsgBox "Controle", vbExclamation, "Foutieve waarde"
    
        Else
                If .Range("B12") = ".../WA/CB" Then
                    MsgBox "U heeft nog geen referentie ingevuld!", vbExclamation, "Geen referentie!"
                End If
                
                If .Range("G12") <> "" Then
                    If .Range("H12") = 0 Then
                        MsgBox "U heeft nog geen dossiernummer ingevuld!", vbExclamation, "Geen dossiernummer!"
                    End If
                End If
                    
                If .Range("N12") = "-" Then
                    MsgBox "U heeft nog geen handler ingevuld!", vbExclamation, "Geen handler!"
                End If

                [COLOR="Red"]If .Range("B12") <> ".../WA/CB" And .Range("H12") <> 0 And .Range("N12") <> "-" Then[/COLOR]
                    .Range("K12").Select
                    Selection.Copy
                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                        :=False, Transpose:=False

                    ActiveWorkbook.SaveAs "\\flsrv-01\Autocad\Collstrop\Offertes\2009\" & Range("H12").Text & "\" & Replace(ActiveWorkbook.Name, ".xls", "_") & Range("H12").Text & ".xls"
                        
                    .PrintOut Copies:=2
                End If
        End If
    End With

End Sub

In de rode lijn wil ik eigenlijk zeggen, als de 3 bovenstaande IF functies OK zijn, dan moet hij verder met de macro.
Bestaat er geen code om te zeggen als bovenstaande IF's OK zijn, dan verder doen met de rest van de code...

Het bovenstaande is geen probleem, het is gewoon een verfijning van de code en kennis opdoen.

Mvg
 
Laatst bewerkt:
In de rode lijn wil ik eigenlijk zeggen, als de 3 bovenstaande IF functies OK zijn, dan moet hij verder met de macro.
Bestaat er geen code om te zeggen als bovenstaande IF's OK zijn, dan verder doen met de rest van de code...
Nee, je zou met een Boolean (True/False) kunnen werken om aan te geven of er iets vergeten is.
De code kan overigens sowieso korter.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan