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

Macro stoppen bij bepaalde celwaarde

Status
Niet open voor verdere reacties.

Cor de Snor

Gebruiker
Lid geworden
27 okt 2001
Berichten
64
Ik probeer een macro te maken die niet verder gaat bij een bepaalde celwaarde. Ik heb een lijst van spelers en gemiddelden die mogen alleen aangepast of gesorteerd worden voor de aanvang van de competitie. Als ik nu de macro start bij celwaarde A10 = 0 worden de spelers gesorteerd, bij celwaarde A10 > 0 krijg ik de MSG Box te zien maar maakt toch de macro af terwijl hij hier zou moeten stoppen.

Sub Start()
If Range("A10") > 0 Then MsgBox "Spelers sorteren mag alleen VOOR aanvang competitie"
Range("W5:AC34").Select
ActiveWorkbook.Worksheets("Namen en Moyennes").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Namen en Moyennes").Sort.SortFields.Add Key:=Range _
("Y5:Y34"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Namen en Moyennes").Sort
.SetRange Range("W5:AC34")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub
 
Dan zul je in de code moeten aangeven dat de rest niet uitgevoerd moet worden (een msgbox is daarvoor overbodig)
 
Zo dus:
Code:
[COLOR=#333333]If Range("A10") > 0 Then
   MsgBox "Spelers sorteren mag alleen VOOR aanvang competitie"
   Exit Sub
End If
[/COLOR]
 
Of zoals gevraagd met een voorbeeld bestandje te plaatsen.
 
Bedankt voor de reactie, ik heb je voorbeeld toegevoegd. Als ik de macro start bij (A10 >0) kleurt End If blauw en krijg de foutmelding: Compileerfout End if zonder blok if
 
Dan heb je een typefout gemaakt. Dit werkt:
Code:
Sub Start()
    If Range("A10") > 0 Then
        MsgBox "Spelers sorteren mag alleen VOOR aanvang competitie"
        Exit Sub
    End If
    Range("W5:AC34").Select
    ActiveWorkbook.Worksheets("Namen en Moyennes").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Namen en Moyennes").Sort.SortFields.Add Key:=Range _
    ("Y5:Y34"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets("Namen en Moyennes").Sort
        .SetRange Range("W5:AC34")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub
 
Dat sorteren kan veel netter toch?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan