Macro uitvoeren als cel wijzigt, werkt alleen bij handmatig invullen..

Status
Niet open voor verdere reacties.

EJProsman

Gebruiker
Lid geworden
15 mrt 2011
Berichten
43
Beste helpers,

Ik heb een code die moet werken als cel P1 van de sheet wijzigt. Dit werkt alleen als de cel P1 handmatig wordt ingevuld. Als het doormiddel van een formule wijzigt wordt de code niet uitgevoerd. De code begint als volgt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$P$1" Then

Weet iemand hoe ik er voor kan zorgen dat de code ook werkt als het getal in cel P1 wijzigt door middel van een formule?

Alvast bedankt,

EJProsman
 
EJProsman,

Heb je dit al geprobeerd?
Code:
Private Sub Worksheet_Calculate()
  If Target.Address = "$P$1" Then
 
Beste Excel Amateur, bedankt voor je reactie wederom!

Ik heb het uitgeprobeerd maar ik krijg dan foutmeldingen. Ook als ik het deel met (ByVal Target As Range) laat staan of Option Explicit weghaal. (las ergens op internet dat dat er mee te maken kon hebben). De foutmelding is per wijziging anders. Met jou voorstel kreeg ik de melding Variabele is niet gedefinieerd. Ik heb hieronder de hele code geplakt. Ik hoop dat het hiermee lukt.

Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$P$1" Then
  Dim cl As Range
    With Sheets("Activated activities")
     .Range("A2:P" & .UsedRange.Rows.Count).ClearContents

  For Each cl In Range("D2:D" & Cells(Rows.Count, 2).End(xlUp).Row)
        If cl = "" And cl.Offset(, 12) = "Yes" Then
        
      .Cells(.Rows.Count, 2).End(xlUp).Offset(1, -1).Resize(, 2).Value _
   = cl.Offset(, 0).Resize(, 2).Value
      .Cells(.Rows.Count, 2).End(xlUp).Offset(, 1).Resize(, 14).Value _
   = cl.Offset(, 2).Resize(, 14).Value
   'De cellen die de macro plak vanaf range d. In dit geval 14 naar rechts
   'De regel daarboven waar de macro ze plakt.
   'Bij de eerste = hetzelfde verhaal
   
     End If
    Next
  End With
End If
End Sub

Mvg, EJProsman
 
EJProsman,

Ik heb in cel P1 de formule gezet = A5
Als ik in cel A5 wat zet en van de cel afgaat met de pijltoets of enter gaat de Macro in werking.
Dus zou ik niet weten wat er aan mankeerd.
 
Sorry voor mn late reactie, had een paar dagen vrij.. Ik hoop dat jij online bent met Koninginnedag;) Maar wat jij zegt is precies het probleem. Je moet met de pijltoets of via een enter van A5 afgaan om de macro in werking te stellen. Dat werkt bij mij ook. Ik gebruik de macro echter voor een sheet waarin data via een formulier gewijzigd kan worden. Met een som.als zou ik eventueel een cel kunnen laten veranderen waardoor de macro in werking zou moeten treden, maar dat werkt dus alleen als je met de pijltoets of via enter van de cel afgaat. Het is de bedoeling dat de macro wijzigt als de formule een ander resultaat geeft, zonder ook maar op het tabblad te komen. Is dit mogelijk?

Fijne Koninginnedag,

EJProsman
 
Ik gebruik de macro echter voor een sheet waarin data via een formulier gewijzigd kan worden. ..... Het is de bedoeling dat de macro wijzigt als de formule een ander resultaat geeft, zonder ook maar op het tabblad te komen. Is dit mogelijk?

Waarom start je de macro niet als de data via het formulier is/wordt gewijzigd?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan