• 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 uitvoeren bij celwijziging

Status
Niet open voor verdere reacties.

zwinmi

Gebruiker
Lid geworden
16 feb 2010
Berichten
98
Hallo Forum,

ik gebruik onderstaande code om B3:D3 en B4:D4 een waarde te geven als cel L3,N3,P3,L4,N4 of P4 gewijzigd wordt. Dit werkt goed, echter als ik daarna de formule (die door deze macro in cel B3:D3 en B4:D4 is gezet) delete dan werkt het niet meer. Ik wil dat hij dat weer opnieuw de formule erin zet als ik cel L3,N3,P3,L4,N4 of P4 wijzig.

Alvast bedankt.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Calculate
If Target.Address = "L3,N3,P3,L4,N4,P4" Then
    Application.ScreenUpdating = False
    Range("B3:D3").Select
    ActiveCell.FormulaR1C1 = _
        "=DATE(R3C12,1,1)+7*R3C14-WEEKDAY(DATE(R3C12,1,1),2)+R3C16"
    Range("B4:D4").Select
    ActiveCell.FormulaR1C1 = _
        "=DATE(R4C12,1,1)+7*R4C14-WEEKDAY(DATE(R4C12,1,1),2)+R4C16"
    Range("N3").Select
    Application.ScreenUpdating = True
End If
End Sub
 
Laatst bewerkt:
Doet deze het zoals gewenst?:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("L3,N3,P3,L4,N4,P4")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
        ActiveSheet.Calculate
            Range("B3").FormulaR1C1 = _
            "=DATE(R3C12,1,1)+7*R3C14-WEEKDAY(DATE(R3C12,1,1),2)+R3C16"
            Range("B4").FormulaR1C1 = _
            "=DATE(R4C12,1,1)+7*R4C14-WEEKDAY(DATE(R4C12,1,1),2)+R4C16"
    Application.ScreenUpdating = True
End Sub
 
Maar nu wil er nog een toevoeging op ^^

In de code van Cobbe bestaat range("L3,N3,P3,L4,N4,P4") uit de volgende waarden:
L3(=beginjaar),N3(=beginweek),P3(=begindag)
L4(=eindjaar),N4(=eindweek),P4(=einddag)

Dus als één van deze cellen werd gewijzigd, dan werd de begindatum (cel B3) en de einddatum (cel B4) automatisch aangepast nav het veranderde jaar-,week- of dagnummer.

Dit werkt perfect.
Nu wil ik dat het andersom ook geldt; dus als ik de begindatum (B3) aanpas, van bijvoorbeeld 13-11-11 naar 14-11-11, dan moet het weeknummer van de beginweek veranderen van 45 naar 46, en de Einddag van 7 naar 1.

Op deze manier kan ik kiezen of op datum wil zoeken of op jaar/week/dag, het is wel zo makkelijk dat als ik de datums verander, dat dan automatisch de jaar/week/dagnummers meeveranderen. Dus als ik de datum verander moet automatisch jaar/week/dag veranderen en visaversa wat nu wel werkt met de code van Cobbe.

Ik hoop dat ik duidelijk ben, vind het een beetje lastig uitleggen.
Op het forum en Google kwam ik niet uit vba codes, jullie kunnen het me vast wel leren.

Alvast bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan