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

geen formule gebruiken maar vba om voorwaarde te controleren en dan cel in te vullen

Status
Niet open voor verdere reacties.

huppelpaard

Gebruiker
Lid geworden
27 mei 2018
Berichten
157
ik heb voorheen een fomule gebruikt om te controleren of een cel aan een waarde voldoet alleen deze kolom word elke keer handmatig veranderd (deze template gebruik ik om elke week een nieuwe urenlijst te maken)
dus word mijn formule steeds gewist. daardoor zoek ik een oplossing om via een vba regel te laten controleren of kolom L een waarde hoger dan 0 heeft zoja dan G18-ATV invullen in Kolom F

Ik heb hier op het forum al rond gekeken maar kan niks vinden wat precies hetzelfde is....
eigenlijk moet er gekeken worden naar meerdere cellen want soms heb je 1 of meerdere atv dagen in een week -)

zie voorbeeld bestandje
Bekijk bijlage Map1x.xlsx

Ik hoor graag of dit mogelijk is

alvast bedankt
 
Laatst bewerkt:
Natuurlijk kan je nooit iets vinden dat precies hetzelfde is. Al eens gezocht op het Worksheet_Change event?

eigenlijk moet er gekeken worden naar meerdere cellen want soms heb je 1 of meerdere atv dagen in een week -)
Waar moet verder naar gekeken worden.
 
nog niet naar gezocht vena ik heb divers zoektermen gezocht deze nog niet

eigenlijk moet er gekeken worden naar meerdere cellen want soms heb je 1 of meerdere atv dagen in een week -)

eigenlijk bedoel ik dat er naar een range gekeken moet worden vind ik in L6 een waarde hoger dan 0 voeg dan waarde in f6 "G18-ATV"
vind ik in L7 een waarde hoger dan 0 voeg dan waarde in f7 "G18-ATV"
vind ik in L8 een waarde hoger dan 0 voeg dan waarde in f8 "G18-ATV"
enz
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("L6:L19")) Is Nothing Then
    Target.Offset(, -4) = IIf(Target = "", "", "G18-ATV")
  End If
End Sub
 
ik heb deze code geprobeerd wanneer ik handmatig de cel of kolom van atv uren invult werkt de code perfect
alleen worden deze cellen ingevuld door een verwijzing bijv =AL6 hier staat de uitkomst van een formule
en dan werkt de code niet

weet je hoe dat kan?
 
Dan zal je de Intersect range en de offset moeten aanpassen.
 
dank je ik heb de range en offset aangepast. Als ik naar een andere kolom en range verwijs dan kom ik tot dezelfde conclusie want g18-atv word door formules bepaald
ik hoef alleen maar 1x een start datum in te vullen van die week en voor de rest begin en eindtijden

betekend dat .... dat het niet mogelijk is om via vba automatisch een cel in te laten vullen als de waarde bepaald word via een formule?
 
alleen deze kolom word elke keer handmatig veranderd
Door wie?

Als je de cel met de betreffende formule in een verborgen kolom zet blijft die dan wel in takt?
 
Mij totaal niet. Wat is de bedoeling? Nagenoeg elke cel verwijst weer naar andere cellen. Van de beschrijving in het bestand begrijp ik ook niet veel.
Wijzig de tijden van begin en eind je zult zien dat g18-atv alleen komt als ik handmatig cel L7 invult

In G18 staat
Code:
=IF(AND(K21>0;G24="JA");"Overuren reserveren voor tijd voor tijd";"")
De kolomkop van kolom G = 'Locatie' Dus wat het moet worden? In kolom N staan formules en een validatielijst met welk doel?
 
uitleggen is niet mijn sterkste vak sorry

indien je dus de gele tijden aanpast gebeurt er niks met je code waarschijnlijk omdat de atv uren door een formule berekend word
maar wanneer ik bij kolom atv uren zelf dus handmatig 8 uur invul bijvoorbeeld dan werkt je code wel

G18 bedoel je F18 mee denk ik.. F18 tm F20 is bedoelt voor de verwerker van mijn uren lijst
+ ik heb nog een tab database waar ik mijn atv uren bijhoud

hoe kan ik dan zonder zelf de uren in te vullen de code laten werken?
uiteindelijk wil ik proberen indien mogelijk om mijn urenlijst (bijna) volledig te automatiseren

de keuzelijst is voor als je gewerkt heb op een atv dag je kan dan kiezen of voor atv uren of 150% uitbetalen als je gewerkt heb
 
Laatst bewerkt:
Ik zal wel F18 bedoelt hebben. Met zo'n bestand raak ik de weg nogal eens kwijt. Wat wil je met de deze formule in F13 bereiken
Code:
=IF(L12<=0;"";"G18-ATV")
?
 
huppelpaard,

is het dit wat je bedoelt?
 

Bijlagen

@vena de code in F13 was een eerdere probeersel echter is dit nutteloos omdat dit de template is om elke week een nieuwe uren lijst te maken
je raad het al deze cel word dus elke week anders dus heeft het geen zin om in deze cel een formule neer te zetten -)

@Haije is het mogelijk dat je code kijkt naar de range N6 tm n19 en dan als voorwaarde : als n6=atv dan g18-atv
wat ook mag is kijken naar range L6 tm l19 als waarde hoger is dan 0 dan g18-atv
als er nu een tijd ingevuld word dan krijg ik namelijk altijd g18_atv te zien of doe ik iets verkeerd?

ps als ik de tijden doortrek naar beneden of plakt krijg ik een error op deze vba regel
Target.Offset(, 3) = IIf(Target = "", "", "G18-ATV")
 
Laatst bewerkt:
@Haije is het mogelijk dat je code kijkt naar de range N6 tm n19 en dan als voorwaarde : als n6=atv dan g18-atv

huppelpaard, ik zou zeggen: probeer het eens uit
 
oplossing blijkt simpeler dan gedacht ik heb de volgende formule aangepast in H6
Code:
=ALS(EN(L6>0;$G$27="NEE");"G18-ATV";LINKS(F6;9))

hiermee is het probleem opgelost zonder enige vba code
ookal staat er nu niks bij omschrijving het is duidelijk dat het om een ATV dag gaat
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan