• 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 moet telkens handmatig uitgevoerd worden

Status
Niet open voor verdere reacties.

Reinierblob

Nieuwe gebruiker
Lid geworden
27 okt 2019
Berichten
3
Hoi allemaal,

Ik heb een kleine macro geschreven in een formulier om te controleren of de waarde in een specifieke cel leeg is. Als dit zo is, dan moet de tekst "Optioneel" weergegeven worden in deze cel. De macro functioneert naar behoren als ik hem uitvoer, echter moet ik hem telkens handmatig uitvoeren. Ik zit al een tijdje te Googlen hoe je ervoor kan zorgen dat Excel een script uitvoert bij het wijzigen van een specifieke cel, maar dit lijkt telkens niet te werken.

Iemand enig idee hoe ik mijn script kan aanpassen?

Code:
Sub Optioneel_OBnr()
    If IsEmpty(Range("X13")) = True Then
    Range("X13").Value = "Optioneel"
    End If
End Sub

Alvast bedankt!

EDIT: Ik zie net dat er gewoon een VBA subforum is... Sorry voor het verkeerd categoriseren.
 
Laatst bewerkt:
Dat kan in het Worksheet_Change event.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "W13" Then
        If IsEmpty(Range("X13")) Then Range("X13").Value = "Optioneel"
    End If
End Sub
 
Laatst bewerkt:
Hoi Edmoor, bedankt voor je reactie.

Ik heb het aangepast, maar het lijkt helaas nog niet te werken. Als ik de cel leeg maak en verlaat wordt de macro niet uitgevoerd. De cel X13 is een samengevoegde cel van X13 t/m AD13, zou dit misschien ermee te maken kunnen hebben?
 
En waar heb je de macro geplaatst?
Die moet wel achter het betreffende werkblad uiteraard.
En wat is de specifieke cel waar je het over had?
Als voorbeeld had ik W13 gebruikt omdat je er niet bij vertelde om welke cel het gaat die wordt aangepast.
Plaats voor dat soort vragen altijd een voorbeeld document.
 
En gebruik nooit samengevoegde cellen.
Waar hebben ze je dat geleerd ?
 
Wanneer is cel X13 leeg? Je kunt toch altijd "Optioneel" erin hebben staan en als iemand of script een andere waarde wil dan vult die dat in. Want degene of de code die de cel weer wist kan dan net zo goed meteen "Optioneel" erin zetten in plaats van wissen.
 
En waar heb je de macro geplaatst?
Die moet wel achter het betreffende werkblad uiteraard.

Ik denk dat het probleem hierin zat ja. De code stond eerst in een module, maar ik heb hem verplaatst naar het betreffende werkblad en nu is alles in orde. Bedankt!

Plaats voor dat soort vragen altijd een voorbeeld document.

Zal ik de volgende keer doen, ik dacht dat deze vraag redelijk voor zichzelf sprak. :)

En gebruik nooit samengevoegde cellen.
Waar hebben ze je dat geleerd ?

Ik heb nooit een cursus in Excel gehad, alles is zelf geleerd met behulp van Google en trial and error. Ik ondervind nooit echt problemen met samengevoegde cellen, en dat bleek hier ook niet het probleem te zijn. Ik ben een formulier aan het maken dat ZZP'ers kunnen invullen om een factuur te maken en voor de uitlijning van de opmaak van het formulier was het een stuk prettiger om cellen samen te voegen.

Wanneer is cel X13 leeg? Je kunt toch altijd "Optioneel" erin hebben staan en als iemand of script een andere waarde wil dan vult die dat in. Want degene of de code die de cel weer wist kan dan net zo goed meteen "Optioneel" erin zetten in plaats van wissen.

Het klopt dat iemand weer zelf "Optioneel" kan invoeren als ze de cel leegmaken, maar het formulier is bedoeld om zo veel mogelijk geautomatiseerd te zijn voor mensen die niet vaardig zijn met Excel. Daarom wil ik graag dat als iemand de ingevoerde waarde in X13 verwijdert, dat er automatisch komt te staan dat deze cel optioneel is. Zo hebben gebruikers namelijk een duidelijke cue dat deze specifieke cel niet verplicht is.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan