• 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 voor melding/msg/input box bij invullen 1 vd cellen in een kolom

Status
Niet open voor verdere reacties.

Makebelieve

Gebruiker
Lid geworden
20 sep 2011
Berichten
33
Hallo,

Ik heb een excelsheet met 100 namen erin, die regelmatig uitbreidt/vernieuwd wordt (personeelsplanning met hierin waar mensen voor opgeleid zijn)

Ik zou eigenlijk graag willen dat er een melding verschijnt zodra er een cel van A1 tot en met A20 (bijvoorbeeld) wordt ingevuld met 1,2,3 of 4 ; In deze melding moet komen te staan 'Heeft medewerker veiligheidsinstructies gekregen en hiervoor getekend (Keuze uit Ja en Nee, aan te vinken)'.
Direct hieronder een menu met een x aantal namen die geselecteerd kunnen worden, dus niet vrij in te vullen. Deze naam dient in te worden gevuld op een apart tabblad zodra er op OK wordt gedrukt, samen met de naam op A3, en evt de computerdatum.

Is dit te realiseren ?

Alvast bedankt voor elke hulp.
 
Klinkt als iets wat met een pop-up-userform te doen is.
Een voorbeeldbestand en iets meer context kan helpen in te schatten wat je nodig hebt. Wat is de betekenis van de waarde 1, 2, 3 of 4?
 
Hallo Timshel,

Kolom B ; B3 bevat naam cursist, B4 tot B20 lege cellen, 1,2,3,4 zijn de gradaties. In cellen A4 tot en met A20 staan allerlei 'lessen'.

a21 bevat 'veiligheidscursus'. B21 dient dus eerst ingevuld te worden, alvorens B4 tot en met B20 (of slechts enkele cellen daarvan) kunnen worden ingevuld. Is dit niet het geval, dan krijg je dus die popupmelding. Wordt B21 ingevuld, dan zou zo'n zelfde popup mogen komen, maar dan met een andere tekst en niet eens perse de keuze om aan te vinken. Eerder iets zoals ; Opleider heeft cursist documentatie laten lezen, laten tekenen, en op de hoogte gesteld van de risico's, en is hiervoor aansprakelijk', met wederom keuzemenu uit namen opleider.

Is dat helder ?
 
Of:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
 If Not Intersect(Target, Range("f3:f15")) Is Nothing Then
  If Range("f15") = "" Then
   Application.Undo
   Range("f3:f15").ClearContents
  End If
End If
Application.EnableEvents = True
End Sub
 
Een goed begin is gemaakt :).

Het is alleen nog steeds mogelijk om op OK te drukken, een 1 in te vullen, zodat deze 'meetelt' in m'n autosom, omdat ik m in 3 t/m 14 kan plaatsen.

Hoe deze code aan te passen zodat er een popup verschijnt met een keuzevenster met diverse namen, die meteen gegevens van keuze (naam opleider, maar ook datum) kopieert naar apart tabblad ?

En bij 15 (f15,g15 etc.) een popup met een Ja/Nee keuze ; 'Er is voldaan aan de regels omtrent de veiligheid' ?
 
Test het zo eens, dan zien we later je vervolgvraag wel over het kopiëren naar een ander tabblad.
 

Bijlagen

Super, wat geweldig om te zien :). Ben erg blij met de hulp !

Stapje voor stapje dus ;) ; Ik zie nu inderdaad een melding verschijnen bij het invullen van een nummer als er niets in rij 15, zelfde kolom is ingevuld. Aangezien alle cellen even belangrijk zijn (maar veiligheid het voornaamst), en het misschien ineens wat makkelijker is qua creeeren van een macro ; bij elke ingevulde cel een melding inclusief naam die ingevuld is in rij 2, zelfde kolom, de naam die de opleider aanklikt in uitklapvenster (hij of zijzelf dus) en de datum van die dag, te kopieren naar een tabblad ?
 
Maak eens een bestandje met een uitklapvenster (validatie), en hoe het eruit moet zien in het ander blad.
 
Bekijk bijlage Opleidingsschema.xlsm

Ik heb het even in hetzelfde bestandje gehouden, maar op een apart tabblad. Op het volgende tabblad even een simpele lijst gemaakt met 4 dingen die ik graag automatisch ingevuld zou zien ; Indien Cursist 1 les 1 volgt ;

-Sheet 1, F2 onder 'Naam Cursist',
-Sheet 1, C3 onder 'Welke les' (na invullen van F3 dus),
-De datum van de dag van de opleiding
-De naam van de opleider die in Sheet 2 onder cel G2 in een dropdownmenu is gemaakt, heb ik even 'Opleiders' genoemd.

Dit dropdownmenu zou ik dus graag bij elke cel tevoorschijn willen laten komen ; Bij de veiligheid ; 'Opleider heeft de veiligheidsinstructies met medewerker doorgenomen', verplicht naam aan klikken voor op ok te drukken, bij rest van de cellen slechts naam aanklikken en ok, behalve als dus niet de veiligheidscel is ingevuld.

Hoop dat dat een beetje duidelijk verwoord is :)
 
Test het eens (ik heb geen flauw idee).

Vul iets in in sheet1 en ga naar het ander blad.
Daar staan nu de gegevens die jij hebt ingevoerd.
 

Bijlagen

Heel mooi, HSV.

2 dingen ; De 'les' veiligheid' wordt niet toegevoegd aan het overzicht, kan dat ?

Kan je de melding combineren met het dropdownmenu, zodanig dat de geselecteerde naam ook gekopieerd wordt naar sheet 2 ?
 
Verander:
Code:
Set c = Range(cl.Offset(-12), cl[COLOR=#FF0000].offset(-1)[/COLOR])
in:
Code:
Set c = Range(cl.Offset(-12), cl)

Dan blijft er nog één vraag over die ik niet begrijp.
Misschien kan je aan de hand van het bestand het duidelijk maken.
 
Wat doet je verandering ? Wordt deze automatisch doorgevoerd als ik de VBAeditor gewoon afsluit ?
 
Je had twee dingen.
1. Met mijn vorig schrijven wordt 'Veiligheid' toegevoegd.
2. Begrijp ik niet, dus moet je aan de hand van een voorbeeld maar toelichten.
 
Hallo HSV,

Ik heb zoals je gevraagd heb in de VBA Editor .offset (-1) verwijderd en gesaved. Ik krijg hierna een Runtime error 13 ; Type mismatch.

Wat ik met dat andere bedoel ; Nu krijg ik een gewone melding dat er niet voldaan is aan de veiligheidseis in cel f15,g15 etc. Kan in deze melding, en bij elke in te vullen cel/les het dropdownmenu ook toegevoegd worden, dus dat bij iedere toevoeging de gebruiker zijn/haar naam moet aanklikken, en deze meegekopieerd wordt naar sheet 2, onder kolom E, 'naam opleider' ?
 
Hoi,

Waar nu c15 staat stond C14, en dan werkt het zonder de foutmelding
Code:
les = Join(Filter(Application.Transpose(Evaluate("if(" & c.Address & "<>"""",c3:[COLOR=#FF0000]c15[/COLOR], ""~"")")), "~", False), ", ")
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan