• 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 starten als cel is waar

Status
Niet open voor verdere reacties.
Er is ook een kans uiteraard dat ik jouw niet snap ;)
Morgen verder...
 
Als ik nl in a1 de formule geef =als(e1=1;"WAAR";"") word de macro uit gevoerd echter als ik in a1 de formule =is.even(e1) gebeurt er niets zichtbaars.

Het enigste wat verandert in mijn optiek is de formule in A1


in dit geval is cel E1 een vaste waarde.

echter in cel E1) moet een waarde komen te staan uit een aantal.als functie

en in cel A1 moet er worden gekeken of cel E1 een even of oneven getal is. Bij een even getal moet de macro worden uitgevoerd en bij oneven moet er niets gebeuren


Bekijk bijlage test 161220172.xlsm
 
Leg eens uit wat nu de bedoeling is. In A1 staat toch al een formule en die ga je opnieuw invoeren? In E1 staat het getal 1 dus is een oneven getal. Is de afhankelijkheid van jouw bestand niet te vinden in kolom G? Blijkbaar moet er iets gebeuren met de range J9:K11. Al eens gekeken naar voorwaardelijke opmaak? Het voorbeeldbestand heeft in mijn optiek weinig toegevoegde waarde om jouw vraag duidelijk te maken.
 
Verander dit: =ALS(E1=1;"WAAR";"")
Eerst eens in dit: =ALS(E1=1;WAAR;"")
En dan in de VBA routine dit:
Code:
If Target.Address = "$E$1" And Range("A1") = True Then


De eerste levert een tekst op en de tweede een Boolean waarde (True, False, WAAR, ONWAAR)
Ook de IS.EVEN en IS.ONEVEN functies leveren een Boolean op en je gebruikt Tekst en Boolean nog steeds door elkaar heen.

Die regel in de VBA routine mag dan ook zo geschreven worden:
Code:
If Target.Address = "$E$1" And Range("A1") Then
 
Laatst bewerkt:
Ik zal even de achterliggende gedachte proberen weer te geven.

Ik heb in excel een aan/afwezigheids bord gemaakt voor het Personeel
elk personeelslid heeft een eigen unieke code doormiddel van een streepjescode en barcodescanner.

Dit werkt allemaal perfect.

Echter er vergeet wel eens iemand zich af te melden. IK wil met een Universele streepjes code deze lijst weer op nu zetten

vandaar dat ik een voorbeeld heb gemaakt om te zien of en hoe het mogelijk was. en en een kleine macro heb op genomen die verschillen de cellen kleurt. Want als het zo werkt kan ik mijn bestand gaan aanpassen

In het voorbeeld is cel J1 de unieke code om de lijst te resetten
Kolom G is de kolom waar de unieke code komt te staan wat is gescand door de Barcodescanner

In celE2 in het voorbeeld worden de aantal unieke code's weer gegeven doormiddel van een aantal.als formule

In jou voorbeeld:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$1" And Range("A1") = "WAAR" Then
Range("J9:K11").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub



in jou voorbeeld wordt uit gegaan dat er in cel E1 een 1 staat zodat doormiddel de van de formule in A1=als(e=1;"WAAR";"") in cel a1 WAAR komt te staan of dat de cel leeg blijft.

Bij een 1 in cel E1 komt er nu in cel A1 WAAR te staan en wordt nu netjes de macro uitgevoerd en verschijnt worden de cellen J9:K11 een rood vierkantje


Mijn doel is dus dat ik op het moment dat ik in het voorbeeld in kolom G een "a" typ ,en er op dat moment het getal in E2 een even getal is, dat dan de macro wordt uitgevoerd

Ik hoop dat ik nu mijn bedoelingen een beetje duidelijker heb beschreven.

en dat je me verder kan helpen
 
Laatst bewerkt:
Ik heb werkelijk geen idee wat het moet worden of waar je mee bezig bent. Voor jou zal het allemaal wel duidelijk zijn maar je blijft jouw verhalen maar herhalen. Nergens lees ik een reactie op de direct gestelde vragen. Een representatief voorbeeld plaatsen lukt je blijkbaar ook niet. Dus veel succes met het oplossen van jouw probleem. 26 post verder zonder juiste info moet toch te denken geven.
 
Code:
if target.column = 7 and target = "a" then
if application.iseven([e2]) and [e2] <> "" then msgbox "aan alle voorwaarden voldaan"
end if
 
Ik wil gewoon een macro aanroepen op het moment dat een bepaalde waarde even is.


in het voorbeeld wat EDMOOR in post in #2

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And Target.Value = True Then
'Je eigen code
End If
End Sub


met een wijziging in #8
If Target.Address = "$E$1" And Range("A1") = "WAAR" Then

in Cel a1 staat de formule =als(e1=1;"WAAR";"")

op het moment dat ik in cel E1 een 1 typ verschijnt er WAAR in cel A1 en wordt een kleine macro gestart in het voorbeeld

als ik in cel A1 de formule =als(e1=1;"WAAR";"") wijzig in =is.even(E1) en ik in E1 een 2 of een ander even getal typ

wordt de Macro ook nog gewoon uitgevoerd.

en nu komt het lastigste:

als ik in plaats van een getal in E1 een formule plaats =aantal.als(G1:g100:j1) (J1 is de cel in het voorbeeld met een a) maar kan ook een willekeurig getal zijn)

berekent hij netjes de aantallen "a" die in G1:G100 voorkomen en geeft in cel A1 netjes WAAR aan als het getal een even getal is

alleen wordt dan de macro niet uitgevoerd aangezien er in A1 gewoon een "WAAR" verschijnt



Ik kan i.v.m privé gegevens niet het originele bestand sturen vandaar een test werkblad.
 
Laatst bewerkt:
Ik wil gewoon een macro aanroepen op het moment dat een bepaalde waarde even is.
Als dat door een formule wordt gerealiseerd, moet je de calculate_event gebruiken.
 
Ik weet weinig van VBA af waar moet dat komen te staan en in plaats van????
 
Dit....
Code:
Private Sub Worksheet_Calculate()
 '......jouw code
End Sub
....in plaats van.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'......jouw code
End Sub
 
Het probleem is dat je dan de mogelijke oplossingen die aangedragen worden ook niet begrijpt. Je zal op z'n minst moeten weten wat Events zijn, welke Event routines er binnen de verschillende VBA secties op reageren, wat de verschillende parameters van die routines betekenen en hoe je daarmee om kan gaan.

Als je een oplossing voor een probleem in een operationeel document zoekt kan je beter dat document hier plaatsen.
Dan wordt het zeker voor je opgelost.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan