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

Excel: probleem met een 'Save macro'

Status
Niet open voor verdere reacties.

Schulz01

Gebruiker
Lid geworden
7 okt 2010
Berichten
19
Beste,

Ik heb een excel bestand waarin bepaalde cellen altijd ingevuld moeten worden. Om te voorkomen dat mensen dit vergeten/ overslaan wil ik ze beletten het bestand op te slaan als deze cellen niet zijn ingevuld.
Kan iemand mij vertellen welke macro code ik hiervoor moet gebruiken?

Alvast bedankt!

Grtn,
Maarten
 
Door te zoeken op 'Verplichte cellen', misschien?

Cobbe
 
of via een macro onder "this workbook" / "workbook"
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not (Range("A1").Value <> "" And Range("B1").Value = "") Then
        MsgBox "a1 moet niet leeg zijn en b1 moet leeg zijn"
        Cancel = True
    End If
End Sub
 
Hoi,

Bedankt voor de hulp tot nu toe. Ik heb de code enigzins aangepast en in het bestand geplaatst. Ik kan het bestand nu namelijk niet meer opslaan zonder de cellen in te vullen.
Dit is de code die ik nu gebruik:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not (Range("D48").Value <> "" And Range("D49").Value <> "" And Range("D50").Value <> "" And Range("D51").Value <> "" And Range("D52").Value <> "" And Range("D53").Value <> "" And Range("D54").Value <> "" And Range("D55").Value <> "" And Range("D56").Value <> "" And Range("D57").Value <> "" And Range("D60").Value <> "" And Range("D61").Value <> "" And Range("D62").Value <> "" And Range("D63").Value <> "") Then
MsgBox "Let op! Het opslaan van dit bestand is niet mogelijk totdat alle verplichte cellen zijn ingevuld."
Cancel = True
End If
End Sub

Het probleem is nu dat ik zelf het bestand ook niet meer op kan slaan zonder waarden in te voeren. Als ik de cellen wel invul en het bestand opsla en doorstuur, betekent het dat de volgende gebruiker de melding nooit meer krijgt omdat ik al iets heb ingevuld. Daardoor wordt de formule dus eigenlijk nutteloos en misschien wel contraproductief omdat er de velden nu ook niet meer leeg ogen.

Heeft iemand hier een oplossing voor? Hoe kan ik het bestand wel blanco opslaan en deze zo doorsturen naar de echte gebruiker?

Hoor graag van jullie.
Alvast bedankt!

Grtn,
Maarten
 
een wat omslachtige oplossing is om jouw pc hiervoor uit te sluiten.
Als je jouw PC-naam weet, zou je dit kunnen doen via
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Not Environ("computername") = "MIJNPC" Then
        If Not (Range("A1").Value <> "" And Range("B1").Value = "") Then
            MsgBox "opslaan is niet mogelijk."
            Cancel = True
        End If
    End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan