Macro uitvoeren bij verandering van cellen in Excel

Status
Niet open voor verdere reacties.

basblok

Gebruiker
Lid geworden
11 nov 2011
Berichten
342
Om niet iedere keer na een uitslag de stand op te hoeven maken wil ik graag een macro aanmaken wanneer bepaalde cellen veranderen in Excel, automatisch de stand wordt aangepast.

Ik had deze vraag eerder voorgelegd bij het Sub Forum Excel, en vermoed dat dit het verkeerde Forum is, vandaar een nieuwe poging en nu bij het VBA Forum.

Op dit moment wordt de stand opgemaakt door eerst de macro te kiezen en dan te klikken op uitvoeren, maar wil ik graag automatisch hebben/maken. Kan dat?
 

Bijlagen

Eerst een hele hoop foutmeldingen wegklikken, en dan op zoek naar de betreffende macro. Keuze uit 18 modulen, dus dat mag geen probleem zijn. Is het niet handiger om een beter bestand mee te sturen?
 
Macro uitvoeren bij wijziging cellen

Beste AccessGuru,

Dank voor je reactie, ik zal het originele bestandje sturen, misschien kan dan wel aan mijn verzoek worden voldaan.
Het gaat er in dat geval dan om dat wanneer een wijziging plaatsvind onderstaande cellen de betreffende nieuwe macro moet worden uitgevoerd.
Ik hoop dat je hier wat mee kunt.

Sheets("Uitslagen").Activate
Range("F6:G8,I6:I8,P6:P8,S6:S8").Select
Range("F6").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F15:G17,I15:I17,P15:P17,S15:S17").Select
Range("F15").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F24:G26,I24:I26,P24:P26,S24:S26").Select
Range("F24").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F33:G35,I33:I35,P33:P35,S33:S35").Select
Range("F33").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F42:G44,I42:I44,P42:P44,S42:S44").Select
Range("F42").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F51:G53,I51:I53,P51:P53,S51:S53").Select
Range("F51").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F60:G62,I60:I62,P60:P52,S60:S62").Select
Range("F60").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F69:G71,I69:I71,P69:P71,S69:S71").Select
Range("F69").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F78:G80,I78:I80,P78:P80,S78:S80").Select
Range("F78").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F87:G89,I87:I89,P87:P89,S87:S89").Select
Range("F87").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F96:G98,I96:I98,P96:P98,S96:S98").Select
Range("F96").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F105:G107,I105:I107,P105:P107,S1058:S107").Select
Range("F105").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F114:G116,I114:I116,P114:P116,S114:S116").Select
Range("F114").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F123:G125,I123:I125,P123:P125,S123:S125").Select
Range("F123").Activate
Selection.ClearContents

Sheets("Uitslagen").Activate
Range("F132:G134,I132:I134,P132:P134,S132:S134").Select
Range("F132").Activate
Selection.ClearContents
 

Bijlagen

Oef, maakt dat het beter? Code moet je sowieso tussen Code tags zetten, en geen : D gebruiken :).

Maar probeer deze code eens op het werkblad zelf:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5:I11")) Is Nothing Then
        Application.ScreenUpdating = False
        Range("C5:I11").Copy
        Range("C15:I21").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Range("C15:J21").Select
        Application.CutCopyMode = False
        With ActiveWorkbook.Worksheets("Stand").Sort
            With .SortFields
                .Clear
                .Add2 Key:=Range("E16:E21"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                .Add2 Key:=Range("F16:F21"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                .Add2 Key:=Range("J16:J21"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
            End With
            .SetRange Range("C15:J21")
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End If
End Sub
 
Macro uitvoeren bij wijziging cellen

Beste AccessGuru,

Grote klasse en het werkt volgens mij zoals bedoeld.
Heel veel dank voor de oplossing.
 
Ik heb te vroeg gejuigd, helaas het is waar.
Als je naar de tweede ronde gaat worden de wijzigingen van die cellen niet meegenomen, dus het eerder gestuurde lijstje bevat alle betreffende cellen.
Kan je dat nog aanpassen?
 
Ik heb alleen je eigen macro zodanig aangepast dat hij automatisch werkt als je in één van de cellen in het bronbereik iets wijzigt. Dat bereik heb je zélf aangegeven in je macro. Ik heb verder niet gekeken naar het proces, of wat je precies aan het doen bent. Daarom snap ik ook niet wat je nu bedoelt :).
 
Het bereik waarop de macro nu zijn werk doet is niet helemaal correct zie afbeelding.
Ik heb het vermoeden dat er in de koppelingen een fout zit die zal ik er eerst uithalen en kom er dan - indien nodig - op terug.
Voor dit moment dank voor je hulp.
 
Wat bedoel je met het werkblad zelf? Het blad Stand?
Moet ik de code plakken in de macro van: Ga_naar_Stand of in deze macro:
Ga_stand_opmaken_volgens_peter ??

Ik hoop dat je mij nog even wil helpen om het goed te krijgen.
 
Automatische opmaak

Heb het bestandje helaas nog niet werkend gekregen.
Kan ik op de laatste vraag nog een antwoordje krijgen?
 
Automatische opmaak bij wijziging cel

Heb de macro geplaatst bij:
Ga_naar_Stand
Ga_stand_opmaken_volgens_peter()
Geen van de twee werkt, wat doe ik toch verkeerd???
 
Macro uitvoeren bij wijziging cellen

Ondanks dat ik de formule heb geplakt op het blad Stand, wordt de macro (nog) niet uitgevoerd.
Het is de bedoeling dat wanneer op het blad Uitslagen iets veranderd, dat direct zichtbaar is in de stand.
Ik zal best wel iets verkeerd doen, of hebben gedaan, maar weet echt niet wat.
Kan iemand mij a.u.b. vertellen wat ik verkeerd doe?
team Pld Mp Pp T.m.c. car brt %
1 Veen- en Rijnstreek 1 2 5 77 77 66 100,00%
2 Den Haag 1 0 1 75 69 92 92,00%
3 Vlietlanden 0 0 0 0 0 0 0,00%
4 Midden Holland 0 0 0 0 0 0 0,00%
5 Rotterdam 0 0 0 0 0 0 0,00%
6 Dordrecht 0 0 0 0 0 0 0,00%

De puntenbereking is volgens het Match puntensysteem toegepast

team Pld Mp Pp T.m.c. car brt %per
1 Veen- en Rijnstreek 0 0 0 0 0 0 0,00%
2 Den Haag 0 0 0 0 0 0 0,00%
3 Vlietlanden 0 0 0 0 0 0 0,00%
4 Midden Holland 0 0 0 0 0 0 0,00%
5 Rotterdam 0 0 0 0 0 0 0,00%
6 Dordrecht 0 0 0 0 0 0 0,00%
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan