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

Extra check / waarschuwing weergeven

  • Onderwerp starter Onderwerp starter jv345
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jv345

Gebruiker
Lid geworden
25 mrt 2007
Berichten
167
Hallo,

Ik heb een invoerdocument waarin afdelingshoofden uren kunnen invoeren van medewerkers middels datavalidatie.
Er is 1 kolom waarbij alle functies van de hele organisatie zichtbaar wordt. Het is namelijk toegestaan dat een afdelingshoofd een medewerker van een andere afdeling kan "inhuren".
Waar ik naar opzoek ben is een formule die eerst controleert of het betreffende afdelingshoofd gebruik maakt van een medewerker die niet onder zijn verantwoordelijkheid valt. Is dit het geval dan moet er een waarschuwingsbox op het scherm getoond worden met bijv de boodschap "Is er afstemming geweest? ". De waarde moet wel blijven staan.
Maakt het afdelingshoofd gebruik van een "eigen" medewerker dan moet er niets gebeuren.

Is dit op te lossen met een formule die ik bijv in een verborgen kolom kan plaatsen of vraag ik het onmogelijke?
Ik hoop overigens dat de vraagstelling duidelijk is.
 
Het belangrijkste is dat Excel kan "zien" dat de betreffende medewerker van een andere afdeling is.
Het lijk mij het handigste als er naast de lijst met medewerkers een kolom met hun afdelingsnaam komt te staan zodat te zien is of de afdelingen overeenkomen.

Met vriendelijke groet,


Roncancio
 
Het lijk mij het handigste als er naast de lijst met medewerkers een kolom met hun afdelingsnaam komt te staan zodat te zien is of de afdelingen overeenkomen.

...en dan daarna met bijv de formule vertikaal zoeken de check uitvoeren en de melding weergegeven.
 
Heren,

Bedankt voor jullie reacties.
De afvraging dat Excel het kan zien heb ik inderdaad voorhanden.
Met de vert.zoeken formule kan ik eea dan laten afvragen MAAR hoe krijg je in deze formule de messagbox ingebakken?
 
Heren,

Bedankt voor jullie reacties.
De afvraging dat Excel het kan zien heb ik inderdaad voorhanden.
Met de vert.zoeken formule kan ik eea dan laten afvragen MAAR hoe krijg je in deze formule de messagbox ingebakken?
Niet in de formule zelf, maar je kan de message box laten zien via een event van het werkblad.
Met andere woorden: als er in een bepaald bereik iets wordt gewijzigd waardoor de afdelingen van de aanvrager en werknemer niet overeenkomen dat er dan een melding komt.

Bijv.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
    If Not Intersect(Target, Range("A1:A2")) Is Nothing And Range("A1").Value <> Range("A2").Value Then
        MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
    End If
End If

End Sub
Er wordt gecontroleerd of A1 overeenkomt met A2. Zo niet dan verschijnt er een melding.

Met vriendelijke groet,


Roncancio
 
Roncancio,

Bedankt voor je reactie.
Ik heb het stukje macro proberen om te bouwen naar mijn spreadsheet maar ik krijg bij iedere mutatie nu de messagebox dus er gaat "iets" nog niet helemaal goed.

In cel C5 heb ik de leidinggevende staan.
In cel F10 wordt de afdeling getoond van de medewerker.
In cel H10 wordt via een vertikaal zoeken formule de leidinggevende gezocht van de afdeling die in cel F10 staat.
Indien de waarde uit cel C5 en H10 dezelfde persoon zijn, dient er dus niets te gebeuren. Indien deze waarden afwijken dan moet wel de messagebox getoond worden.

Ik begrijp het eerste sukje van je macro niet goed:
If Target.Count = 1 Then
If Not Intersect(Target, Range("A1:A2")) Is Nothing
Waarschijnlijk zit hierin de fout.

Ik heb nu staan:
If Target.Count = 1 Then
If Range("E5").Value <> Range("H10").Value Then
MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
End If
End If

Een tweede vraag: hoe krijg ik het nu voor elkaar om deze afvraging voor alle ingevoerde cellen in kolom H van kracht te alten worden. Naar mijn zeer bescheiden mening geldt het nu alleen voor de cellen E5 en H10.

Ik hoop dat je me begrijpt en "het ei van Columbus" voorhanden hebt
John.
 
Ik begrijp het eerste sukje van je macro niet goed:
If Target.Count = 1 Then
If Not Intersect(Target, Range("A1:A2")) Is Nothing
De Target.Count telt het aantal cellen dat geselecteerd is. Dit is om te voorkomen dat per ongeluk meerdere cellen geselecteerd zijn en dat daardoor de macro niet goed loopt. Ik heb de indruk dat dit hier niet aan de orde is dus je zou het weg kunnen laten.

Ik heb nu staan:
If Target.Count = 1 Then
If Range("E5").Value <> Range("H10").Value Then
MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
End If
End If
Er is niets mis met je code en ik heb het zelf ook nog geprobeerd. Wat je zou kunnen controleren is of de cellen E5 en H10 daadwerkelijk identiek zijn. Voor de zekerheid heb ik TRIM toegevoegd aan de code. Trim verwijdert spaties voor en achter het woord.

Een tweede vraag: hoe krijg ik het nu voor elkaar om deze afvraging voor alle ingevoerde cellen in kolom H van kracht te alten worden. Naar mijn zeer bescheiden mening geldt het nu alleen voor de cellen E5 en H10.
Zie onderstaande code.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Trim$(Range("E5").Value) <> Trim$(Range("H" & Target.Row).Value) Then
    MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Beste Roncancio,

Ik heb je laatste stukje macro ingepast in mijn sheet.
Helaas: het werkt toch niet goed.
Nog steeds wordt bi jiedere wijziging ( dus ook goede) de box weergegeven.
Ook als ik de waarde van C5 hard kopieer in cel H10 wordt de box getoond.
Wat is er mis?

John.
 
Beste Roncancio,

Ik heb je laatste stukje macro ingepast in mijn sheet.
Helaas: het werkt toch niet goed.
Nog steeds wordt bi jiedere wijziging ( dus ook goede) de box weergegeven.
Ook als ik de waarde van C5 hard kopieer in cel H10 wordt de box getoond.
Wat is er mis?

John.

Kan je (een deel van) het bestand sturen?
Zonder gevoelige informatie uiteraard.

Met vriendelijke groet,


Roncancio
 
Roncancio,

Hierbij een voorbeelsbestand. Ik heb er een heleboel uit moeten halen want anders werd het veel te groot.
Ik hoop dat je hiermee verder kunt.
Anders hoor ik het wel :)

John.
 

Bijlagen

Roncancio,

Hierbij een voorbeelsbestand. Ik heb er een heleboel uit moeten halen want anders werd het veel te groot.
Ik hoop dat je hiermee verder kunt.
Anders hoor ik het wel :)

John.

Ik zie dat de macro kijkt naar E5 ipv C5!:shocked::shocked::shocked:
Begrijp ik het goed dat de I-kolom wordt ingevuld (medewerker) en dat dan automatisch diens afdelingshoofd verschijnt, en dat die afdelingshoofd wordt vergeleken met de waarde in C5?

Met vriendelijke groet,


Roncancio
 
Ik heb de macro aangepast en gecontroleerd in je bestand.

Code:
Sub Worksheet_Change(ByVal Target As Range)
If IsError(Range("H" & Target.Row).Value) = False Then
    If Trim$(Range("C5").Value) <> Trim$(Range("H" & Target.Row).Value) Then
        MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
    End If
End If
  
End Sub
Doordat er voor sommige afdelingen de foutmelding NB verscheen, heb ik de code uitgebreidt,
Indien je een afdelingkiest, verschijnt er automatisch de afdelingshoofd. komt die afdelingshoofd niet overeen met de naam in cel C5 dan verschijnt de foutmelding.

Met vriendelijke groet,


Roncancio
 
Roncancio,

Briljant.:thumb:
Ik controleerde steeds met de verkeerde cel (E5 ipv C5).:p
Toch waarschijnlijk last van de zon op mijn kalende schedel.

Dat er in het voorbeeldbestandje NB voorkomen komt omdat ik erg veel weg heb moeten halen. In het totale bestand is hier geen sprake van.
Desalniettemin heb ik het stukje macro wel laten staan.

Nogmaals mijn hartelijke dank voor de oplossing en snelle reactie.
groet,
John.

PS ik zal de vraag sluiten.
 
Roncancio,

Toch even te snel "hoera" geroept.
Indien er inderdaad een "andere functie / medewerker" is geselecteerd dan verschijnt de box. Prima.
Echter hierna worden nog meer kolommen via datavalidatie gevuld. Bij iedere invulling hiervan blijft de box verschijnen. Dat is niet de bedoeling.
Een keer, als reminder, is prima maar daar moet het wel bij blijven.

Moet ik de macro laten tellen of kan dit opgelost worden met een pure selectie op een kolom??

Ik hoor graag van je.
groet,
John.
 
Roncancio,

Toch even te snel "hoera" geroept.
Indien er inderdaad een "andere functie / medewerker" is geselecteerd dan verschijnt de box. Prima.
Echter hierna worden nog meer kolommen via datavalidatie gevuld. Bij iedere invulling hiervan blijft de box verschijnen. Dat is niet de bedoeling.
Een keer, als reminder, is prima maar daar moet het wel bij blijven.

Moet ik de macro laten tellen of kan dit opgelost worden met een pure selectie op een kolom??

Ik hoor graag van je.
groet,
John.

Ik heb de macro aangepast dat wanneer de E-kolom (afdeling) wijzigt, gecontroleert wordt of de afdelingshoofd dezelfde is als de opdrachtgever. In alle overige gevallen wordt er niet gecontroleerd.

Code:
Sub Worksheet_Change(ByVal Target As Range)
If IsError(Range("H" & Target.Row).Value) = False Then
    If Trim$(Range("C5").Value) <> Trim$(Range("H" & Target.Row).Value) And Chr(64 + Target.Column) = "E" Then
        MsgBox "De afdelingen komen niet met elkaar overeen!", vbInformation, "Verschillende afdelingen"
    End If
End If
  
End Sub
Bij mij werkt het goed maar jij moet er mee werken dus als er problemen zijn, dan hoor ik het wel.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan