Excel: identieke macro voor elke rij

Status
Niet open voor verdere reacties.

Williewammes

Gebruiker
Lid geworden
12 mei 2020
Berichten
28
Hallo, Ik heb de volgende vraag: Ik wil in een excel sheet in elke rij een knop die dezelfde macro uitvoert voor alleen de cellen in die rij. Hoe is dit voor elkaar te krijgen zonder voor elke cel een nieuwe macro te hoeven schrijven/opnemen? Ik hoor het graag :thumb:
 
Dat kan ook met 1 knop en 1 macro, al heb je 1000.000 rijen.
 
Laatst bewerkt:
Dat lukt ook wel. Elke rij moet een knop hebbe die alleen die specifieke rij bewerkt middels een macro.
Het moet alleen simpel zijn om een nieuwe rij toe te voegen zonder dat er elke keer een nieuwe specifieke macro voor die rij geschreven hoeft te worden.
 
Precies wat ik zeg.
Elke rij een knop en eigen macro ga je niet willen.
 
Laatst bewerkt:
verduidelijking

Ok, maar hoe ga ik dan voor elkaar krijgen dat 1 universele macro zijn ding doet in alleen de rij waar ik op de knop druk, zonder dat de rest van de rijen ook door de macro worden aangepast.

Ter verduidelijking. Ik wil een onderhoudschema maken, waarbij de onderhoudsmonteur op het moment dat hij periodiek onderhoud heeft uitgevoerd, in de betreffende regel in excel de knop kan aanklikkken en de interval verschoven wordt naar de volgende datum. Ik maak hierbij gebruik van een verborgen kolom waar hij de nieuwe datum berekent op basis van de ingevoerde onderhoudsinterval. Door de macro te activeren moet hij die nieuwe (berekende) datum in de cel kopiëren van die betreffende regel.

Ik ben nieuw in VBA en gebruik macro's tot op heden echt alleen door deze op te nemen, dus als het kan graag een eenvoudige uitleg :d
 
Je kan de macro zo schrijven dat hij zijn werk doet op de regel waar je op staat.
 
Laatst bewerkt:
Ok, dan maak je dus 1 knop, waarbij je in de betreffende rij moet gaan staan om de macro voor die rij te activeren.
Is het ook mogelijk om elke rij een eigen knop te geven zonder de noodzaak om in die rij te gaan staan?
 
Er is heel veel mogelijk, maar een knop per regel ga je echt niet willen.
Het kan zelfs zo zijn dat je niet eens een knop nodig hebt, of niet eens een macro.
Plaats een voorbeeld documentje met wat je precies als resultaat per regel wilt hebben.
 
Laatst bewerkt:
je kan door dubbelklikken of rechtsklikken in bv een cel van de C-kolom een event opwekken en die de macro laten doen.
Gewoon kwestie van afspraak, als ik dat doe, dan moet excel zo reageren.
 
Hierbij de betreffende excel.

Ik wil simpelweg de nieuwe onderhoudsdatum (in kolom E) plakken in kolom C als het betreffende onderhoudspunt is uitgevoerd.
Maar dit moet dus per regel apart gedaan kunnen worden. De voorwaardelijke opmaak dient om visueel te maken welke punten over de datum zijn.
 

Bijlagen

  • Preventief onderhoud.xlsm
    19,5 KB · Weergaven: 48
Je geeft aan dat je niet per regel een knop wilt hebben, waarom zou je dat niet moeten willen?
 
Dan ga je niet willen i.v.m. onderhoud.
 
Laatst bewerkt:
Dat snap ik, maar hoe zorg ik dan dat de macro alleen zijn ding doet in een specifieke rij?
 
Zet dit in de module van Blad1 en dubbelklik dan in een cel van kolom C:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 3 And Target.Row > 1 Then
        If MsgBox("Opnieuw berekenen?", vbQuestion + vbYesNo, "Datum volgende controle") = vbYes Then
            Cells(Target.Row, 3) = Cells(Target.Row, 5)
        End If
    End If
End Sub

In je document:
Bekijk bijlage Kopie van Preventief onderhoud.xlsm
 
Laatst bewerkt:
Nice, het werkt idd. Bedankt voor de hulp.
Ik ga de code ook maar eens uitpluizen om te ontdekken hoe dit werkt ;)
 
Voor vragen erover weet je waar je moet zijn ;)
 
Ik zou gewoon target gebruiken i.p.v. over te schakelen naar cells.
Ook een Cancel = true.

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Target.Column = 3 And Target.Row > 1 Then
  If MsgBox("Opnieuw berekenen?", vbQuestion + vbYesNo, "Datum volgende controle") = vbYes Then Target = Target.Offset(, 2)
     Cancel = True
 End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan