VBA code stopt geheel na kiezen no. Continous looping????

Status
Niet open voor verdere reacties.

SBryony

Gebruiker
Lid geworden
28 okt 2016
Berichten
6
Halllooo Excel Kings en Queens,

Ik heb jullie hulp nodig. Zie onderstaande code.
Op het moment dat iemand dus kiest voor 'Gereed' of 'Wacht op uitrol kantoor' in combinatie met 'yes', wordt de regel overgeplaatst naar een andere tab.
Wanneer dezelfde keus gemaakt wordt en de gebruiker kiest deze in combinatie met 'No', dan gebeurd er niks.

Echter, wanneer de optie voor 'Gereed' of 'Wacht op uitrol kantoor' weer gekozen wordt, gebeurd er daarna ook niks meer.
Ik zou graag willen dat bij No de bewerking inderdaad stopt, maar dat wanneer deze weer (in deze cel of een andere cel in die kolom) gekozen wordt, de vraag weer gesteld wordt en hem dan wel of niet weer uitvoert.
Dus een soort van continious loop ofzoiets? Weet iemand hoe ik mijn code moet aanpassen om dit voor elkaar te krijgen?

Alvast bedankt!


Code:
Option Base 1
Private Sub Worksheet_Change(ByVal Target As Range) 'De code start bij een wijziging
Dim ar, c00 As String
    If Target.Column <> 8 Then Exit Sub 'Als de wijziging niet in kolom H gebeurt dan STOP
    ar = Array("Gereed", "Wacht op uitrol kantoor", "Afgehandeld", "Wacht op Uitrol")
    Application.EnableEvents = False
    With Target
    If .Value = "Gereed" Or .Value = "Wacht op uitrol kantoor" Then 'Als in kolom K "Gereed" staat dan
    If MsgBox("Review gereed melden? (Datum terugkoppeling is ingevuld!)", vbYesNo) = vbNo Then End
    c00 = ar(Application.Match(Target.Value, ar, 0) + 2)
        ActiveCell.EntireRow.Cut Destination:=Sheets(c00).[A65536].End(xlUp).Offset(1, 0) 'Zet de tekst in de laatste lege regel van blad2
        ActiveCell.EntireRow.Delete 'De overgezette regel wordt in blad1 verwijderd
        Sheets(c00).Columns("A:S").AutoFit 'Pas in Afgehandeld de kolombreedte aan, aan de tekst
    End If
    End With
    Application.EnableEvents = True
End Sub
 
Zonder vbtje ?
Probeer deze:
Code:
If MsgBox("Review gereed melden? (Datum terugkoppeling is ingevuld!)", vbYesNo) = vbNo Then [COLOR="#FF0000"]Exit Sub[/COLOR]
 
Je zet eerst de uitvoering stop met EnableEvents = False, en die wordt vervolgens alleen weer op TRUE gezet als je daarna op Yes klikt. Bij No stop je de procedure en blijft EnableEvents dus op False staan. Misschien moet je het zo oplossen:

Code:
            If MsgBox("Review gereed melden? (Datum terugkoppeling is ingevuld!)", vbYesNo) = vbNo Then GoTo Hell
    End With

Code:
Hell:
    Application.EnableEvents = True
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 8 Then Exit Sub 
    c00 = "GereedWacht op uitrol kantoorAfgehandeldWacht op Uitrol")

    If instr(c00,target.Value)<10 and MsgBox("Review gereed melden? (Datum terugkoppeling is ingevuld)", vbYesNo) = vbYes Then 
      Application.EnableEvents = False
      Target.EntireRow.Cut Sheets(mid(c00,30,11)).cells(rows.count,1).End(xlUp).Offset(1)
      Application.EnableEvents = True
    End If
End Sub

PS, Kolom 8 = kolom H, niet kolom K
 
Zou mi ook zonder enableevents false/true moeten kunnen (eventueel icm target.cells.count)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan