Hulp gevraagd bij VBA code

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

Kim77

Gebruiker
Lid geworden
4 mei 2022
Berichten
6
Ik heb een excel waar ik in volgende "bereiken" alleen een datum wil toestaan:
Range I3:I999
Range J3:J999
Range K3:K999

Ik had online al een script gevonden (zie hieronder) waarin ik het bereik I3:I999 kon registreren, maar hoe kan ik het script aanpassen zodat ook de 2 andere bereiken worden gecontroleerd op "datum"?

Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
Set w = ActiveSheet.Range("I3:I999")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Deze cel mag enkel een datum bevatten."
End If
Next c
End Sub


Alvast bedankt voor de hulp :D
 
Laatst bewerkt:
Omdat je gebruik maakt van de changeevent lijkt het erop dat je nog met de invoering moet beginnen

Doordat de kolommen waarom het gaat aan elkaar grenzen kun je het samenvoegen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
if not intersect(target, range("i3:k999")) is nothing then
  application.enableevents = false
    if not isdate(target) then
      application.undo
      MsgBox "Deze cel mag enkel een datum bevatten."
    End If
  application.enableevents = true
end if
End Sub

Maak zoals ik gebruik van enebleevents = false en true, anders zal de code alsmaar aangeroepen worden bij het leegmaken van de cel.
 
Bedankt HSV,

En als ik nog volgende ranges wil toevoegen?
N3:N999
Q3-Q999
S3:S999
T3:T999


Bovenaan mijn VBA codepagina staan 2 dropdowns waarin in de linker "worksheet" staat en in de rechter "change". Moet ik daaraan iets aanpassen?
Ben nog een leek met VBA sorry ;-)


Alvast bedankt ;-)
 
Laatst bewerkt:
Dan doe je het op de manier in je bericht die je zojuist hebt verwijderd.

Code:
range("i3:k999","N3:N999", "Q3:Q999", "S3:T999")

Uit die twee dropdowns kun je kiezen.
In de linker-dropdown staat nu waarschijnlijk alleen maar Worksheet, maar bij gebruik van andere attributen in je sheet (Listbox, combobox etc) komen die pas tevoorschijn.
In de rechter-dropdown kun je van elk attribuut de gebeurtenis kiezen.
 
Wist je dat de jongelui bij MS jouw vraag 30 jaar geleden hadden voorzien? Toen hebben ze datavaldation bedacht en in iedere versie van Excel ingebouwd. Want VBA bestond toen nog niet.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan