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

VB ipv formule

Status
Niet open voor verdere reacties.

jarre2

Gebruiker
Lid geworden
9 nov 2011
Berichten
43
Hallo,
In bijgaand voorbeeldbestandje staat in kolom F, rij 4 t/m 252 de formule =ALS(E4="o";"optie";ALS(E4="v";"vraag";"")). Rij E en F hebben voorwaardelijke opmaak, dit terzijde.

Mijn vraag is: zou het mogelijk zijn om de formule in kolom F (rij 4 / 252) te vervangen voor een VB code?

Vr. gr.
Jarre
 

Bijlagen

Waarom zou je dat willen met een dergelijk simpele formule?
 
Beperking van de bestandsgrote en tevens het niet kunnen overschrijven van de formule.
 
En hoe moet dan de VB code worden geactiveerd?
En knop op het scherm? Een userform? Als werkbladgebeurtenis?
 
Met werkblad beveiligen kun je ook voorkomen dat cellen worden overschreven.
De grootte van bestand wordt hierdoor niet (nauwelijks) beïnvloed.
 
Dank voor de reactie, cellen beveiligen is mij bekend. Ook ter lering vroeg ik mij af, of dit ook in een code te "vangen" was en hoe je dit moest aanpakken.

Jarre
 
Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E4:E252")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Select Case Target.Value
            Case "o"
                Target.Offset(, 1) = "optie"
            Case "v"
                Target.Offset(, 1) = "vraag"
        End Select
    End If
End Sub

Bij het wijzigen v/e waarde in kolom E wordt de waarde automatisch in kolom F geplaatst.
 
Hallo Warme Bakkertje,

Heel hartelijk dank voor uw waardevolle oplossing. Ben daar zeer erkentelijk voor. De code werkt perfect! Dit praktijk voorbeeld geeft toch weer enig inzicht in VBA en zal dagelijks veelvuldig gebruikt worden.

Met vriendelijke groet,
Jarre

Note:
Zou het ook mogelijk zijn als in een cel van rij E, de "o" of "v" weer weg gehaald wordt, dat dan de cel ernaast de tekst weer verdwijnt?
 
Laatst bewerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E4:E252")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Select Case Target.Value
            Case "o"
                Target.Offset(, 1) = "optie"
            Case "v"
                Target.Offset(, 1) = "vraag"
            Case ""
                Target.Offset(, 1) = vbNullString
        End Select
    End If
End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E4:E252")) Is Nothing Then [F5:F252] = [index(choose(find(E5:E252," ov"),"","optie","vraag"),)]
End Sub
 
Laatst bewerkt:
@ snb
Waar blijf je het allemaal halen :thumb:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E4:E252")) Is Nothing Then [F4:F252] = [if(E4:E252="o","optie",if(E4:E252="v","vraag",""))]
End Sub

of

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E4:E252")) Is Nothing Then [F4:F252] = [index(choose(find(E4:E252," ov"),"","optie","vraag"),)]
End Sub

Zo werken ze beiden helemaal correct.
 
Laatst bewerkt:
@ Warme bakkertje en @snb

Beide heren dank voor de aangeboden VBA codes. Waar een op het oog eenvoudige vraag toe kan leiden…

Chapeau
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan