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

beveiligen opslaan

Status
Niet open voor verdere reacties.

knarfje

Gebruiker
Lid geworden
12 mrt 2001
Berichten
817
Als er data in Cel A1 staat moet er cel B1 een daum ingevuld worden.
Zo ook verder als er Data in Cel A2 staat moet er cel B2 een daum ingevuld worden.

Als in geval van data in de A cellen en de B cel is niet gevuld moet er een melding komen als de gebruiker wil sluiten/opslaan, dus een blokkade hiervoor.
Is dit mogenlijk en zoja hoe?
 
Als er data in Cel A1 staat moet er cel B1 een daum ingevuld worden.
Zo ook verder als er Data in Cel A2 staat moet er cel B2 een daum ingevuld worden.

Als in geval van data in de A cellen en de B cel is niet gevuld moet er een melding komen als de gebruiker wil sluiten/opslaan, dus een blokkade hiervoor.
Is dit mogenlijk en zoja hoe?

ja dit kan en en met VBA(visual basic for applications)

Byee VRC
 
narfje,

Heb je hier wat aan?
Dit was kort geleden behandeld.
Gebruik ook eens "Doorzoek dit forum"

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    Target.Offset(, 1) = Date
  End If
End Sub

De code is niet van mij.
 
narfje,
Heb je hier wat aan?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B:B")) Is Nothing Then
    Target.Offset(, 1) = Date
  End If
End Sub
De code is niet van mij.

Hij slaat gewoon op als ik alles leeg laat...
Ik had gezocht dmv de zoek functie maar zoek maar eens op cel beveiligen, krijg je 20 bladen!
 
knarfje,

Dit is een begin, nu moet je van het opslaan nog zoeken.
Je kunt ook proberen om je handelingen met de macrorecorder op te nemen, die schrijft dan de code voor je.
 
Lees deze link eens door, volgens mij staat je andwoord daar in de code van Warme Bakkertje.

Dit betreft dan het opslaan met een mededeling, die kun je natuurlijk aanpassen.
 
Lees deze link eens door, volgens mij staat je andwoord daar in de code van Warme Bakkertje.
Dit betreft dan het opslaan met een mededeling, die kun je natuurlijk aanpassen.

Bedankt voor de verwijzing, ik heb deze ook gezien maar ook hiermee kan ik het bestand gewoon opslaan en komt er geen melding met het opslaan.
Ik sla de VBA op in this workbook!?

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If [A1].Value = "" Then
        MsgBox "Je hebt geen datum ingevuld", vbOKOnly, "Waarschuwing"
        Cancel = True
    Else
        Application.Dialogs(xlDialogSaveAs).Show
    End If
End Sub
 
wacht, de melding komt alleen met het sluiten van bestand niet met opslaan.....
 
Als het goed is nu wel bij opslaan als.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If [A1].Value = "" Then
    MsgBox "Je hebt A1 niet ingevuld", vbOKOnly, "Waarschuwing"
  If [B1].Value = "" Then
    MsgBox "Je hebt B1 niet ingevuld", vbOKOnly, "Waarschuwing"
        Cancel = True
  Else
        Application.Dialogs(xlDialogSaveAs).Show
  End If: End If
End Sub
 
Als het goed is nu wel bij opslaan als.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  If [A1].Value = "" Then
    MsgBox "Je hebt A1 niet ingevuld", vbOKOnly, "Waarschuwing"
  If [B1].Value = "" Then
    MsgBox "Je hebt B1 niet ingevuld", vbOKOnly, "Waarschuwing"
        Cancel = True
  Else
        Application.Dialogs(xlDialogSaveAs).Show
  End If: End If
End Sub

Maar nu heb ik nog niet bereikt dat als A1 data staat men verpicht een datum in B1 moet zetten, toch?
Wellicht ben ik wat onduidelijk geweest, daarvoor mijn excuses.
 
Hier een voorbeeldje.
 

Bijlagen

  • Help(Hv0.xls
    36 KB · Weergaven: 32
knarfje,

Ik weet niet hoeveel cellen er ingevuld moeten zijn om te kunnen opslaan.
In de code moeten de cellen van A1 tot A10 en B1 tot B10 ingevuld zijn om te kunnen opslaan.
Is het zo de bedoeling?

Je kunt het berijk natuurlijk aanpassen aan je wensen.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  For Each cl In [A1:A10]
    If cl = "" Then
      MsgBox "Je hebt kolom 'A' niet ingevuld", vbOKOnly, "Waarschuwing"
      Exit Sub
    End If
  Next
  For Each cel In [B1:B10]
    If cel = "" Then
      MsgBox "Je hebt kolom 'B' niet ingevuld", vbOKOnly, "Waarschuwing"
      Exit Sub
    End If
  Next
    Application.Dialogs(xlDialogSaveAs).Show
End
Sub
 
@Hoornvan, als eerste alvast mijn dank voor je inzet en geduld:thumb:

Ik heb je document bekeken maar daar word automatisch een datum ingevuld en dat is niet nodig.

Doel is:
Klant meld in kolom a een artikel dat op een bepaalde tijd (datum) weer leverbaar is.
Dus klant vult altijd kolom A in maar vergeet vaak kolom B.

Men is dus verplicht kolom B ook in te vullen. Zodoende wil ik een document maken dat ze niet kunnen opslaan en bewaren als ze in kolom A wat gemeld hebben en kolom vergeten in te vullen.(het liefst met een melding dus.
 
knarfje,

Haal uit mijn voorbeeldje de code achter het tabblad weg.( die zet de datum als A1 is ingevuld)
Maak de cellen A1 en B1 leeg.
Vul nu iets in bij cel A1 en sla de file op, als het goed komt de mededeling dat cel B1 nog moet worden ingevuld, het opslaan gaat niet door.
 
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Application.WorksheetFunction.CountA([A1:A15]) <> _
            Application.WorksheetFunction.CountA([B1:B15]) Then
        MsgBox "In kolom B ontbreekt een datum !", vbExclamation
        Cancel = True
    End If
End Sub
 
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Application.WorksheetFunction.CountA([A1:A15]) <> _
            Application.WorksheetFunction.CountA([B1:B15]) Then
        MsgBox "In kolom B ontbreekt een datum !", vbExclamation
        Cancel = True
    End If
End Sub
Thanks warmbakkertje.
Dat werkt precies zoals ik wil maar.....
Het bestand waar deze code in komt (this workbook) is een Sjabloon waarmee een nieuwe bestanden word gemaakt en waar de code ook in tercht moet komen.
Doordat het in This workbook staat komt het daarin niet terecht, is daar een oplossing voor??
 
Voor zover ik weet gaat die code toch mee vanuit de sjabloon (.xlt):eek:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan