maandag, 16 mei 2016 12:07

Controleer waarde cel 1 bij vullen cel 2 VBA / Gegevensvalidatie Speciaal

Geschreven door
Beoordeel dit item
(2 stemmen)

 

Ik kreeg recentelijk de volgende vraag: 'Ik wil eigenlijk automatisch een msgbox laten verschijnen als de waarde in cel B1 ingevuld is en cel A1 leeg is. Is dit mogelijk?'

In dit geval ging het er om dat in zijn Excel bestand een werknemersnummer werd ingevuld, zonder dat er een naam van een werknemer ingevuld was!

Ik heb toen 2 mogelijkheden uitgewerkt:

VBA

DOWNLOAD HIER VOORBEELD BESTAND 1

M.b.v. een klein stukje VBA code kunnen we afdwingen dat er gekeken wordt na een 'change' van het werkblad of A2 leeg is en B2 niet, in dat geval wordt er een melding getoond:

 

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

If Range("B2").Value <> Empty And Range("A2").Value = Empty Then

  MsgBox "vul een naam in!", vbCritical, "waarschuwing"

End If

End Sub

 

Bovenstaande code controleert slechts 1 cel combinatie (A2 / B2). Als we dit uit willen breiden naar bijvoorbeeld 10 regels, vervang dan bovenstaande door:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim MyRange As RangeDim currentCellDim nextCellDim i As Integer

 

Set currentCell = Range("A2")

Do While i < 10   

Set nextCell = currentCell.Offset(0, 1)   

If currentCell.Value = Empty And nextCell.Value <> Empty Then    

  MsgBox "vul een naam in!", vbCritical, "waarschuwing"   

End If        

Set currentCell = currentCell.Offset(1, 0)    

i = i + 1

Loop

 

End Sub  

Gegevensvalidatie

DOWNLOAD HIER VOORBEELD BESTAND 2

Een alternatieve manier zonder VBA is het gebruik van Excel gegevensvaldiatie. Ga op de cel staan waar je de validatie op uit wilt laten voeren (in ons voorbeeld B3) en kies op het lint, het tabblad 'GEGEVENS' --> 'Hulpmiddelen voor gegevens' --> 'Gegevens validatie.

Lint gegevensvaldiatie Excel

Bij 'INSTELLINGEN' kiezen we bij 'TOESTAAN' voor 'AANGEPAST' en bij de formule geven we op:

=(EN(EN(ISLEEG(A3)=ONWAAR;ISLEEG(B3)=ONWAAR);LENGTE(B3)>=6))

 Excel gegevens validatie

'Lege cellen negeren' laten we 'uit'.

Met Copy / Paste trekken we dit door naar alle cellen die we willen valideren. Zoals je misschien al hebt gezien controleert deze validatie ook nog of de lengte van de code die we opgeven minimaal 6 posities is!

Als we nu in het voorbeeld bestand een code opgeven zonder naam of een code die < 6 tekens is dan 'triggert' dat de validatie:

Voorbeeld gegevensvalidatie Excel

 

Aanvullende informatie

  • Versies: Alle versies
Lees 11367 keer Laatst aangepast op maandag, 16 mei 2016 13:01
Log in om reacties te plaatsen

Excel Software Shop

Web Analytics