• 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.

Exit sub

Status
Niet open voor verdere reacties.

Bakkerken

Gebruiker
Lid geworden
14 dec 2014
Berichten
46
Beste Excel liefhebbers,

vraagje ivm exit sub waar ik niet uit raak.

Ik heb een vrij lange code staan in vba.

Ik probeer kort te schetsen wat het probleem is:
Er zijn verschillende handelingen die uitgevoerd worden wanneer op de commandbutton in een userform wordt geklikt =
zoeken naar range, dan actieve cel invullen, indien cel erboven "JA" staat dan exit sub (= cel niet invullen)
daarna zoekt hij nieuwe range en doet hij hetzelfde
= actieve cel invullen, indien cel erboven "JA" staat dan exit sub (= cel niet invullen)
enz... tem taak 10
Op zich loopt alles OK, echter had ik graag gehad indien vb taak 3 niet wordt uitgevoerd (doordat cel erboven dus "JA" staat doet hij exit sub)
dat hij ook taken 1 en 2 niet uitvoert, maar dat doet hij wel.

Is het mogelijk dit te omzeilen?
Indien er dus bij één van de 10 taken een exit sub wordt uitgevoerd mag hij geen enkele taak uitvoeren
(ik kan geen vb bestand meesturen daar dit taak is voor op mijn werk = kan/mag niet gedeeld worden)

Alvast hartelijk dank voor jullie hulp.
 
Met code zou het wel lukken denk ik zo, anders wordt het moeilijk.

Ps. je moet het bestand niet posten enkel de code.!
 
Laatst bewerkt:
Soortgelijks:
Code:
if activecell.offset (0,-1) = "JA"
then msgbox ("invoer nok")
exit sub
else
activecell = "JA"
end if
nieuwe range zoeken
if activecell.offset (0,-1) = "JA"
then msgbox ("invoer nok")
exit sub
else
activecell = "JA"
end if
end sub

Graag had ik dus gehad indien bij de tweede taak de exit sub wordt uitgevoerd, ook de eerste taak niet wordt uitgevoerd
 
Laatst bewerkt:
Daar is niks van te zeggen omdat je de regel die begint met Sub weg laat.
Tevens is niet duidelijk wat hier wordt bedoeld met "nieuwe range zoeken" en staan de Then regels op de verkeerde plek.
 
Laatst bewerkt:
Edmoor,

dit is maar vb van code die ik heb die ik zoals vermeld niet kan/mag vrijgeven.

voorbeeldje die mss concreter is:
Code:
Sub invoeren()

Range("A2").Select
If ActiveCell.Offset(-1, 0) = "JA" Then
MsgBox "invoer nok"
Exit Sub
Else
ActiveCell = "JA"
End If
Range("B2").Select
If ActiveCell.Offset(-1, 0) = "JA" Then
MsgBox "invoer nok"
Exit Sub
Else
ActiveCell = "JA"
End If
End Sub

Indien in cel B1 JA staat geeft hij dus msgbox,
maar vult hij toch de JA in in cel A2 =
graag had ik gehad indien bij bij B1 een exit sub doet, hij ook cel A2 niet invult
 
Laatst bewerkt:
Deze dan?

Code:
Sub invoeren()

With Range("A2")
  If .Offset(-1, 0) = "JA" Then
   MsgBox "invoer nok"
    Exit Sub
  Else
     .Value = "JA"
  End If
End With
With Range("B2")
 If .Offset(-1, 0) = "JA" Then
  MsgBox "invoer nok"
   Range("A2") = ""
   Exit Sub
Else
   .Value = "JA"
End If
End With
End Sub
 
Of wellicht zonder de Exit Sub:
Code:
Sub invoeren()
    With Range("A2")
        If .Offset(-1, 0) = "JA" Then
            MsgBox "invoer nok"
        Else
            With Range("B2")
                If .Offset(-1, 0) = "JA" Then
                    MsgBox "invoer nok"
                    Range("A2") = ""
                Else
                   .Value = "JA"
                End If
            End With
        End If
    End With
End Sub
 
ff code proberen integregen in mijn code maar hij doet het jammer genoeg niet = mogelijks zie ik iets over het hoofd.
Hieronder een deel van de code die in mijn bestand staat = hij doet alles perfect, echter doet hij ook eerste deel indien 2de deel toch exit sub geeft
Code:
sub invoeren
Sheets("blad1").Select
Dim bereik As Range
Set bereik = Columns(1).Find(Sheets("menu").Range("datum").Value, LookIn:=xlValues)
bereik.Select
with activecell
If Me.OptionButton1.Value = True And Me.OptionButton7.Value = True And ActiveCell.Offset(-1, 0) = "JA" Then
MsgBox "ingave nok"
Exit Sub
End If
End with
If Me.OptionButton1.Value = True Then
ActiveCell = "JA"
ActiveCell.Offset(0, -1) = Time
ElseIf Me.OptionButton2.Value = True Then
ActiveCell = "NEE"
ActiveCell.Offset(0, -1) = Time
End If

Sheets("blad2").Select
Dim bereik1 As Range
Set bereik1 = Columns(1).Find(Sheets("menu").Range("datum").Value, LookIn:=xlValues)
bereik.Select
with activecell
If Me.OptionButton8.Value = True And Me.OptionButton10.Value = True And ActiveCell.Offset(-1, 0) = "JA" Then
MsgBox "ingave nok"
Exit Sub
End If
End with
If Me.OptionButton8.Value = True Then
ActiveCell = "JA"
ActiveCell.Offset(0, -1) = Time
ElseIf Me.OptionButton9.Value = True Then
ActiveCell = "NEE"
ActiveCell.Offset(0, -1) = Time
End If
end sub
 
Laatst bewerkt:
Bakkerken,

Zou je aub je code hier kunnen opmaken door
Code:
 tags te gebruiken ? Dat is het # icoontje. Bedankt.
 
OK Wigi, wist ik niet. Dank voor het seintje.

Iemand die me nog verder kan helpen met dit probleem?
 
Pas dan ook de posts #3, #5, #9 aan en zet de code tussen tags aub.
 
Ik weet niet of dit de bedoeling is:
Code:
Sub invoeren()
    Sheets("blad1").Select
    Dim bereik As Range
    Set bereik = Columns(1).Find(Sheets("menu").Range("datum").Value, LookIn:=xlValues)
    bereik.Select
    With ActiveCell
        If Me.OptionButton1.Value = True And Me.OptionButton7.Value = True And ActiveCell.Offset(-1, 0) = "JA" Then
            MsgBox "ingave nok"
            Exit Sub
        End If
    End With
    If Me.OptionButton1.Value = True Then
        ActiveCell = "JA"
        ActiveCell.Offset(0, -1) = Time
    ElseIf Me.OptionButton2.Value = True Then
        ActiveCell = "NEE"
        ActiveCell.Offset(0, -1) = Time
    End If

    Sheets("blad2").Select
    Dim bereik1 As Range
    Set bereik1 = Columns(1).Find(Sheets("menu").Range("datum").Value, LookIn:=xlValues)
    bereik.Select
    With ActiveCell
        If Me.OptionButton8.Value = True And Me.OptionButton10.Value = True And ActiveCell.Offset(-1, 0) = "JA" Then
            MsgBox "ingave nok"
             With Sheets("Blad1")
                .ActiveCell.Address = ""
                .ActiveCell.Address.Offset(0, -1) = ""
             End With
            Exit Sub
        End If
    End With
    If Me.OptionButton8.Value = True Then
        ActiveCell = "JA"
        ActiveCell.Offset(0, -1) = Time
    ElseIf Me.OptionButton9.Value = True Then
        ActiveCell = "NEE"
        ActiveCell.Offset(0, -1) = Time
    End If
End Sub
 
Doet het jammer genoeg nog niet zoals gewenst.
Ik los het op een andere manier op.
Dank iedereen om te helpen zoeken naar een oplossing.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan