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

Change event voor range

Status
Niet open voor verdere reacties.

nieuweharing

Gebruiker
Lid geworden
27 sep 2021
Berichten
42
Goedemiddag,
ik heb een Excel sheet met in de cellen A1 t/m A10 verschillende waarden tussen de 1 en de 10.
Nu wil ik graag via VBA dat in de cel ernaast, dus B1 t/m B10 de waarde 1 komt te staan
als er in de naastgelegen A cel de waarde 4 staat.

ik weet dat er een range aan te pas komt maar krijg het niet voor elkaar
Hebben jullie een idee?

Groetjes
 
In B1:
PHP:
=ALS(A1=4;1;"")
En dan doortrekken.
Geen VBA voor nodig.
 
Als je handmatig de getallen verandert zo:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 And Target.Value = 4 Then Target.Offset(, 1) = 1
End Sub
 
Hallo edmoor,

de Als functie had ik al gebruikt en werkte goed, het probleem is dat ik ook de mogelijkheid wil houden om handmatig iets in de B cel in te voeren.
Sorry, dat had ik in de haast vergeten te vermelden :confused:

Hallo JVeer,

Als de waarde in een A cel alpha numeriek is, b.v. de waarde ' hallo' en als in dat geval in de B cel de waarde 4 moet komen,
kan ik dan dezelfde code gebruiken?

Sorry dat ik zo rommelig overkom:rolleyes:

Groetjes
 
Rommelig overkomen betekent dat jij jouw eigen vraag niet begrijpt. Plaats een voorbeeldbestand.
 
Bvb

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 Then
   Select Case Target.Value
     Case 4: Target.Offset(, 1) = 1
     Case "hallo": Target.Offset(, 1) = 4
     Case Else: Target.Offset(, 1) = ""
   End Select
 End If
End Sub

of

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 Then
   With Target
    .Offset(, 1) = Evaluate(Replace("if(@@=4,1,if(@@=""hallo"",4,""""))", "@@", .Address))
   End With
 End If
End Sub
 
Laatst bewerkt:
Hallo JVeer,
Geweldig bedankt, het werkt !!!!
 
Laatst bewerkt door een moderator:
Het quoten van complete berichten is niet echt wenselijk.

Evaluatie lijkt mij in dit geval overbodig
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Range("A1:A10")) Is Nothing And Target.Count = 1 Then
   With Target
    .Offset(, 1) = IIf(.Value = 4, 1, IIf(.Value = "hallo", 1, ""))
   End With
 End If
End Sub
 
Code:
 .Offset(, 1) = IIf(.Value = 4 Or .Value = "hallo", 1, "")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan