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

on changing cell

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
hoe kan ik een bepaalde macro (die ik al heb geschreven, met naam macro2() laten lopen als een specifieke cel (bv cel B5) verandert?

ik heb reeds deze code gevonden, mr die doet het niet bij mij..

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Then
    
    '   insert code here if B2 changes value:
        Range("A1").Value = Range("A1").Value + 1
    
    End If
End Sub
 
Laatst bewerkt:
Bovenstaande code werkt perfect bij verandering in cel B2, niet B5.
 
Zoals de code zelf beschrijft, snijpunt van kolom 2(Target.Column) en rij 2(Target.Row)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Then
     '   insert code here if B2 changes value:
        Call macro2
    End If
End Sub

Mvg

Rudi
 
Zoals de code zelf beschrijft, snijpunt van kolom 2(Target.Column) en rij 2(Target.Row)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Then
     '   insert code here if B2 changes value:
        Call macro2
    End If
End Sub

Mvg

Rudi

rudi bedankt!! hoe kian ik meedere "on target" cells als voorwaarde ingeven, zodat als 1 van de doelcellen veranderen, dat een bepaalde macro loopt.. ik heb geprobeerd met meerdere "ifs", maar dat lukt precies niet?

ik heb geprobeerd met dit

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Then
     '   insert code here if B2 changes value:
              ActiveSheet.Range("A1").Value = ActiveSheet.Range("B2").Value * 2
       If Target.Column = 2 And Target.Row = 3 Then
              ActiveSheet.Range("A1").Value = ActiveSheet.Range("B3").Value * 2
    End If
    End If
    
End Sub

moet ik mss werken met cases? of hoe kani k het best doen? :-) bedankt!!
 
ik heb momenteel dit.. is dit amateuristisch in VB land? :-)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Or Target.Column = 2 And Target.Row = 3 Or Target.Column = 2 And Target.Row = 4 Then
     '   insert code here if B2 changes value:
        Call macro(2)
        
        
     End If
    
End Sub
 
ik heb momenteel dit.. is dit amateuristisch in VB land? :-)
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 2 And Target.Row = 2 Or Target.Column = 2 And Target.Row = 3 Or Target.Column = 2 And Target.Row = 4 Then
     '   insert code here if B2 changes value:
        Call macro(2)
        
        
     End If
    
End Sub
ik zou graag een bepaalde range opgeven die bij wijziging een bepaalde macro laten lopen.. weet iemand hoe dit het best kan? ik heb al tal van zaken geprobeerd, zoals target.range=range("B1:B3") enz, mr dit werkt niet...

ik zou graag de volgende ranges hebben B1:B3 en range C6:C9 als een van de cellen in die ranges veranderen, moet een bepaalde macro lopen..
 
Laatst bewerkt:
ik zou graag een bepaalde range opgeven die bij wijziging een bepaalde macro laten lopen.. weet iemand hoe dit het best kan? ik heb al tal van zaken geprobeerd, zoals target.range=range("B1:B3") enz, mr dit werkt niet...

ik zou graag de volgende ranges hebben B1:B3 en range C6:C9 als een van de cellen in die ranges veranderen, moet een bepaalde macro lopen..

het zou moeten werken met deze code hieronder, nu dit werkt bij mij enkel voor 1 range, als ik ook de range C6:C9 wil toevoegen, hoe moet het dan?

Code:
If Not Intersect(Target, Range("B1:B3")) Is Nothing Then
 
Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, [B1:B3]) Is Nothing Then
        Call macro2
    End If
    
    If Not Intersect(Target, [C6:C9]) Is Nothing Then
        Call macro3
    End If
End Sub

Mvg

Rudi
 
Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Not Intersect(Target, [B1:B3]) Is Nothing Then
        Call macro2
    End If
    
    If Not Intersect(Target, [C6:C9]) Is Nothing Then
        Call macro3
    End If
End Sub

Mvg

Rudi

bedankt!
wat is het verschil met vierkante haakjes en accolades? bij de range bepaling..
 
Laatst bewerkt:
Die vierkantje haken is eigenlijk een soort van "afkorting" om niet Range() te moeten typen. De schrijfwijze is eenvoudiger, maar dat is het enige voordeel. In mijn ogen is range() echter beter leesbaar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan