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

zoek, vergelijk en invullen

Status
Niet open voor verdere reacties.

nynke253

Gebruiker
Lid geworden
19 mrt 2016
Berichten
80
hallo

ik heb een bestand toegevoegd.
NU wil ik graag dat als ik in het tabblad onder labelnummer sleutel een nummer invult dat hij in het tabblad sleutelplan onder kolom sleutel aanwezig achter dat zelfde nummer het kruisje weghaalt.

BV. in het tabblad sleutelplan vul ik onder label nummer sleutel 15 in dan wil ik dat hij bij het tabblad het kruisje (cel K26) weghaalt bij labelnummer 15 (cel A26) weghaalt.

Als je mijn excelbestand aanpast laat me ff weten welke formule je gebruikt of wat je hebt veranderd zodat ik het ook weet
 

Bijlagen

Hallo,

Bv.

In K12 en doorvoeren naar onderen.
Code:
=ALS(AANTAL.ALS(sleutelbeheer!$A$3:$A$11;A12)>0;"";"x")
 
foutmelding

Het is me gelukt maar nog niet helemaal wat ik bedoel.
Het sleutelbeheer zal alleen maar groeien het is dus wel de bedoeling als ik bij het sleutelbeheer bv op regel 1000 zit hij dit alsnog doet
 
Laatst bewerkt:
Het is me gelukt maar nog niet helemaal wat ik bedoel.
Het sleutelbeheer zal alleen maar groeien het is dus wel de bedoeling als ik bij het sleutelbeheer bv op regel 1000 zit hij dit alsnog doet
 
Dan maak je van de 11 die er in staat, 1100.
 
het is me gelukt beetje nadenken en dan kom je er wel.. Soms ff net wat beter kijken en niet meteen weer reageren
 
Ach, is prima hoor.
Soms zijn de vingers vlugger dan....

Succes ermee.
 
toch nog een vraag in het sleutelbeheer heb je onder kolom E een kruisje als de sleutel weer ingeleverd wordt.
Als dit kruisje er staat is het de bedoeling dat in het sleutelplan het kruisje weet terug komt te staan bij dat labelnummer

het zal vermoedelijk iets met of zijn maar weet het verder ff niet. heb wel wat dingen geprobeerd maar kom er net niet uit
 
Laatst bewerkt:
Ik ben er ook even mee bezig geweest.

Volgens mij is de sleutel aanwezig als er minder uitgegeven zijn (en nog niet geretourneerd) dan dat er zijn (volgens kolom J).

Ik heb namen gedefinieerd zodat je dynamische bereiken hebt voor de sleutels en de innames:
Sleutels: =sleutelbeheer!$A$2:INDEX(sleutelbeheer!$A:$A;AANTALARG(sleutelbeheer!$A:$A))
Innames: =sleutelbeheer!$E$2:INDEX(sleutelbeheer!$E:$E;AANTALARG(sleutelbeheer!$A:$A))

Hierbij is wel van belang dat er geen gaten vallen in kolom A van Sleutelbeheer (d.w.z. geen tussenliggende lege cellen).

De formule in Sleutelplan!K12 en gekopieerd naar beneden is nu:
Code:
=ALS(J12="";"";ALS(J12-AANTALLEN.ALS(Sleutels;A12;Innames;"=");"X";""))

Verder heb ik de formule voor voorwaardelijke opmaak aangepast zodat de regels alleen rood worden als er een aantal sleutels in kolom J is ingevuld en kolom K leeg is, dus als er geen sleutel meer aanwezig is: =EN($K12="";$J12<>"")

En last but not least heb ik een stukje VBA toegevoegd om de datum/tijd te bevriezen in Sleutelbeheer kolommen D en F:
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    Dim cl As Range
    Application.EnableEvents = False
    
    Set rng = Intersect(Target, Range("Sleutels"))
    If rng Is Nothing Then GoTo Inname
    For Each cl In rng
        cl.Offset(0, 3).Value = Date + Time
    Next cl
    Set cl = Nothing

Inname:
    Set rng = Nothing
    Set rng = Intersect(Target, Range("Innames"))
    If rng Is Nothing Then GoTo Afronden
    For Each cl In rng
        If cl.Value <> "" Then
            cl.Offset(0, 1).Value = Date + Time
        Else
            cl.Offset(0, 1).Value = ""
        End If
    Next cl

Afronden:
    Application.EnableEvents = True
    
End Sub
 

Bijlagen

Of in K12 en doorvoeren naar onderen.
Code:
=ALS(AANTAL.ALS(sleutelbeheer!$A$3:$A$1100;A12)>0;ALS(INDEX(sleutelbeheer!$E$3:$E$1100;VERGELIJKEN(A12;sleutelbeheer!$A$3:$A$1100;0))="x";"x";"");"X")

Op zich is de formule niet zo lang... alleen de naam van je tabblad maar.
 
Een stukje Vba is ook niet verkeerd in dit geval Marcel.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union(Range("a3:a1100"), Range("e3:e1100"))) Is Nothing Then
 With Target
  Select Case .Column
   Case 1
    .Offset(, 3) = IIf(.Value > 0, Now, "")
   Case 5
    .Offset(, 1) = IIf(.Value > 0, Now, "")
  End Select
 End With
End If
End Sub
 

Bijlagen

Laatst bewerkt:
Een stukje Vba is ook niet verkeerd in dit geval Marcel.

Dank Harry, ik ben nog steeds aan het leren. :thumb:

Maarre..helemaal fullproof is die code niet: als je meerdere cellen tegelijk wijzigt, dan levert het een foutmelding op.

Ook voor Nynke natuurlijk:
Ik ben er nog even mee aan het stoeien geweest om het helemaal waterdicht te maken.
Hierbij heb ik ook meegenomen dat er geen gaten mogen vallen in kolom A van blad 'Sleutelbeheer'

Daartoe heb ik ook de formules van de gedefinieerde namen aangepast:
Sleutels: =sleutelbeheer!$A$2:INDEX(sleutelbeheer!$A:$A;MAX(AANTALARG(sleutelbeheer!$A:$A);AANTALARG(sleutelbeheer!$D:$D)))
Innames: =sleutelbeheer!$E$2:INDEX(sleutelbeheer!$E:$E;MAX(AANTALARG(sleutelbeheer!$A:$A);AANTALARG(sleutelbeheer!$D:$D)))

De macro is nu geworden:
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rng As Range
    Dim cl As Range
     
    On Error Resume Next
    Intersect(Range("Sleutels"), Range("Sleutels").SpecialCells(xlCellTypeBlanks)).Value = "Onbekend"
    On Error GoTo 0
    
    Set rng = Intersect(Target, Union(Range("Sleutels"), Range("Innames")))
    If rng Is Nothing Then Exit Sub
    
    Application.EnableEvents = False
   
    For Each cl In rng
        If cl.Row > 2 Then cl.Offset(, IIf(cl.Column = 1, 3, 1)) = IIf(cl.Value <> "", Now, "")
    Next cl
    
    Application.EnableEvents = True
    
End Sub

Het lijkt mij best practice om EnableEvents uit te schakelen in code van een Change Event; tegelijkertijd heb ik een uitzondering gemaakt daar waar "Onbekend" ingevuld wordt, zodat die ook een datum krijgen.

Verder heb ik nog een stukje code met bijbehorende knop gemaakt om geselecteerde regels weer leeg te maken: als je de onderste regels leeg maakt, dan blijven ze ook echt leeg. Als je tussenliggende regels leeg maakt, dan krijgen die een "Onbekend" invulling.

Edit: de regels met "Onbekend" kunnen eventueel hergebruikt worden voor nieuwe sleuteluitgiften.

Code:
Option Explicit

Sub MaakRegelsLeeg()

    Application.EnableEvents = False
    Selection.EntireRow.ClearContents
    Application.EnableEvents = True
    
    On Error Resume Next
    Intersect(Range("Sleutels"), Range("Sleutels").SpecialCells(xlCellTypeBlanks)).Value = "Onbekend"
    On Error GoTo 0
    
End Sub

Last but not least heb ik nog een controle toegevoegd dat er niet méér sleutels worden uitgegeven dan er beschikbaar zijn:
- de formule in Sleutelplan K12 en gekopieerd naar beneden is nu: =J12-AANTALLEN.ALS(Sleutels;A12;Innames;"=")
- de bijbehorende formule voor voorwaardelijke opmaak: =EN($K12=0;$J12<>"")
- eventuele foutmelding in Sleutelbeheer!H1 en voorwaardelijke opmaak om dan het hele blok A1:L2 rood te kleuren
- op tab Beeld heb ik deelvensters geblokkeerd zodat regels 1 en 2 altijd zichtbaar zijn.
 

Bijlagen

Laatst bewerkt:
Heren bedankt.. Het werkt ben er blij mee.

Ik heb nog een laatste vraag maar weet niet of dit mogelijk is. (denk zelf van niet of niet zoals ik nu denk misschien is er wel iets wat er op lijkt mogelijk)

ik zou graag willen dat het sleutelbeheer in hetzelfde blad komt als het sleutelplan. en dan naast het logo. alleen als ik het erin zet en gegevens invoer van de uitgifte en inname dan zakt uiteindelijk het sleutelplan naar onderen en dat is niet de bedoeling er zou dus eigenlijk een scrollbalk moeten komen bij het beheer.
 
Dit was niet helemaal wat ik bedoelde maar ik zal dat stukje laten voor wat het is.

In het vorige bestand kwam ik nog iets tegen waarvan ik nog niet weet hoe ik dit op kan lossen. Vaak weet ik wel ongeveer wat ik kan doen maar ben nog een beginner met Excel
Ik wil de sleutelregistratie laten groeien hierdoor kan het gebeuren dat sleutel nummer 1 vaker uitgegeven wordt en weer wordt ingenomen alleen kleurt hij als je twee keer 1 intikt de regel in het sleutelbestand niet meer rood.
ik het bestand ingevuld toegevoegd zodat het gelijk zichtbaar is. in het tabblad sleutelplan had de regel rood moeten zijn
 

Bijlagen

Kijk nu doet hij het maar wat heb je nu gedaan want ik kan nergens een formule ontdekken
 
Er staan ook geen formules in.
Rechtsklik op tabbladnaam sluetelbeheer → Programmacode weergeven; Hier staat de code die alles verwerkt.
Je moet het bestand dus ook opslaan als een bestand met macro's (.xlsm of .xlsb extensie).
 
Oh hier heb ik nog nooit mee gewerkt.
dat wordt lastig als het bestand beschadigd raakt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan