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

Foutcode VBA macro automatisch sorteren op kleur

Status
Niet open voor verdere reacties.

Stef21

Gebruiker
Lid geworden
15 mrt 2021
Berichten
32
Goedemorgen allen,

Ik heb een foutcode in mijn vba-code en ik zou niet weten wat ik moet veranderen om deze foutcode op te lossen.
Ik heb een excel waarin ik bijhoudt wat mijn voortgang is op verschillende projecten: oranje is bezig, geel is wachtend op informatie, wit is planning en groen is verwerkt.
Nu heb ik een VBA-code gemaakt die zodra ik op een knop druk opnieuw filtert in de volgorde: Oranje, geel, wit, groen.
Echter krijg ik af en toe deze foutmelding: Fout 91 tijdens uitvoering: Objectvariabele of blokvariabele With is niet ingesteld.
Zouden jullie kunnen kijken naar de code?
Code:
Sub FilterenOpKleur()
    If FilterOn = True Then
        FilterOn = False
    End If
    Range("A2:I2").Select
    Selection.AutoFilter
    With ActiveWorkbook.Worksheets("BTW-aangiftes").AutoFilter.Sort.SortFields
        .Add2(Key:=Range("B3:B86"), SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal).SortOnValue.Color = RGB(237, 125, 49)
        .Add(Range("B3:B86"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 192, 0)
        .Add2 Key:=Range("B3:B86"), SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal
        .Add(Range("B3:B86"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(112, 173, 71)
    End With
    With ActiveWorkbook.Worksheets("BTW-aangiftes").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
    With Sheets("BTW-aangiftes")
    If .AutoFilterMode Then .AutoFilterMode = False
    End With
End Sub

Alvast bedankt!
 
Laatst bewerkt:
Kijk in debug mode welke regel die fout veroorzaakt.
 
Sorry, vergeten aan te geven, regel 7 veroorzaakt deze fout.
 
Ik zie geen nummers voor die regels.
 
De regel waarin het volgende vermeld staat is geel gemarkeerd in de VBA-code:
With ActiveWorkbook.Worksheets("BTW-aangiftes").AutoFilter.Sort.SortFields
 
Dankjewel AD1957, dat werkte inderdaad.
Echter heb ik nu de volgende fout: Fout 1004 tijdens uitvoering: Door de toepassing of door object gedefinieerde fout
Deze foutcode komt voor in regel 8: .Add2(Key:=Range("B3:B86"), SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal).SortOnValue.Color = RGB(237, 125, 49)

Hebben jullie hier nog een oplossing voor?
 
Hoezo rij 2 sorteren ?

Verwijder alle 'select's.
 
Ik zie dat dit inderdaad overbodig is. Eerst was dit het niet doordat ik een bestand had waar het autofilter niet op de juiste plek werd gezet.
Ik heb het bestand ondertussen aangepast en nu is de select dus overbodig en heb ik het eruit gehaald, bedankt!
De foutcode is daarmee echter nog niet opgelost.
 
Zie mijn eerste opmerking.

Waar heb je deze code vandaan ?
 
In rij 1 staat andere informatie die niet meegenomen moet worden in het filter, dus vandaar dat vanaf regel 2 pas gesorteerd moet worden.

Ik heb deze code gemaakt met behulp van de Macro opnemen-module in Excel.
 
Hier een voorbeeldje.
En anders een voorbeeldbestand.

p.s Als je een macro maakt om te sorteren noem hem dan SorterenOpKleur en niet FilterenOpKleur
 

Bijlagen

Dag AD1957,

Ik heb jouw code getest en toen kwam ik erachter wat het probleem (onder andere) was. Als ik op de knop klik werkt het perfect, echter had ik de code gekopieerd dat het ook zou werken op het moment dat ik iets aanpaste.
Er stond echter in 1 cel een link, dus als ik de code testte en ik klikte per ongeluk op de link ging vanaf dat moment de code compleet fout en kreeg ik dus foutcode 1004.

Het enige wat nu nog niet werkt is als je de blauwe kleur volledig naar beneden zou willen sorteren, zodat je de volgende sortering krijgt: rood, geel, wit, blauw. Als ik namelijk zelf een regel toevoeg in jouw code met RGB 255 255 255 doet dat niet wat ik zou willen.

Bedankt voor je tip. Ik heb het veranderd!
 
Probeer het eens zo.
Code:
Sub Sorteer()
 With ActiveSheet.Sort
    .SortFields.Add Range("B3"), xlSortOnValues, xlAscending, "bezig,wachtend op info,planning,verwerkt"
    .SetRange Range("B2:B86") 'zelf aanpassen
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
 End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan