• 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 mag niet gesloten worden als bepaalde cellen niet zijn ingevuld

Status
Niet open voor verdere reacties.

Gaertner

Gebruiker
Lid geworden
18 mrt 2009
Berichten
74
Goedenavond,
Ik heb een Excel bestand met meerdere regels en kolommen. Heb me inmiddels verdiept in VBA en een formule gevonden om het document niet te laten sluiten zonder dat die cel ingevuld is. Dat werkt prima (If Cells (1, 1) = "" Then MsgBox "Cell A1 is verplicht", vninformation, "Erik" Cancel = True End If).
Dit werkt prima, echter wil ik deze formule ook gebruiken voor meerdere cellen in het tabblad ook voor cellen waar een keuze menu inzet via Gegevensvalidatie.
Iemand enig idee, want als ik de formule verander naar een andere regel en kolom bij (This Workbook BeforeClose) dan werkt het niet, want verandert de andere cel ook direct.
Iemand een idee
 
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Cells(1, 1) = "" Or Cells(2, 2) = "" Or Cells(3, 3) = "" Then
        MsgBox "Niet alle verplichte cellen zijn gevuld."
        Cancel = True
    End If
End Sub
 
@AHulpje Super! dank je wel, je hebt me al enorm geholpen. Een andere vraag nog. Het bestand bestaat uit bijv. uit 20 regels met per regel een 7 cellen welke ingevuld moeten, dus (1, 1) (1, 2) etc. Dit werkt met met de eerste regel dus prima. Een andere collega moet in hetzelfde tabblad op de 2 regel alles invullen, dus eerste collega moet het Excel bestand dan wel kunnen sluiten, maar als ik de formule zou doortrekken naar (2, 1) (2, 2) kun de eerste collega het bestand niet sluiten. Is zoiets überhaupt mogelijk?
 
Je zult dan per gebruiker / collega moeten bepalen wie welke cellen moet invullen. Dat zou zo kunnen:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Select Case Environ("username")
        Case "Marie"
            Cancel = Cells(1, 1) = "" Or Cells(1, 2) = "" Or Cells(1, 3) = ""
        Case "Gaertner"
            Cancel = Cells(2, 1) = "" Or Cells(2, 2) = "" Or Cells(2, 3) = ""
    End Select
    If Cancel Then MsgBox "Je moet wel alle verplichte velden invullen " & Environ("username")
End Sub
Maar bij wisseling van collega's en / of hun taken is dat niet erg onderhoudsvriendelijk.
Als er sprake is van een bepaalde volgorde waarin het document moet worden gevuld zou je per in te vullen rij/gebied kunnen testen of dat is gebeurd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan