Controle ingevoerde cel voor opslaan

Status
Niet open voor verdere reacties.

JW at Work

Gebruiker
Lid geworden
29 jan 2009
Berichten
13
Beste mensen,

Ik zit met een probleem..
Ben hier nou al een tijdje mee bezig maar kom er niet meer uit.. :(
Ik zou graag willen dat er een controle op invoer op cel "P6" wordt uitgevoerd voordat het bestand wordt opgeslagen maar alleen als de SHEET "Doc.4" actief is.

Er zijn meerdere SHEETS met de naam "Doc.x". Indien dus een andere SHEET actief is moet de messagebox melding niet gegeven worden en het bestand gewoon opgeslagen worden.

Hopelijk kan iemand mij helpen?? Ik was al een aardig eindje op weg.. maar kom niet verder..

(NB. in dit document moeten ook cel "P7" en "P9" etc. en nog meerdere cellen gecontroleerd worden..
En er moeten in de andere sheets ook cellen gecontroleerd worden indien die sheet actief is..)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveSheets = ("Doc.4") Then
Dim Rij As Integer
If ThisWorkbook.Sheets("Doc.4").Range("P6").Value = "" Then
MsgBox ("Veld P6 is niet ingevuld!")
Cancel = True
End If
Else
ThisWorkbook.Saved = True
End If

End Sub
 
Laatst bewerkt:
Bvb.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Select Case ActiveSheet.Name

    Case "Doc.4":

        If Range("P6") = vbNullString Then
            MsgBox "Veld P6 is niet ingevuld!"
            Cancel = True
        End If

        If Range("P7") = vbNullString Then
            MsgBox "Veld P7 is niet ingevuld!"
            Cancel = True
        End If

        If Range("P9") = vbNullString Then
            MsgBox "Veld P9 is niet ingevuld!"
            Cancel = True
        End If

    Case "Doc.5":

        If Range("P2") = vbNullString Then
            MsgBox "Veld P2 is niet ingevuld!"
            Cancel = True
        End If

    End Select

End Sub

By the way, Googlen helpt ook vaak goed. Google maar eens op: excel vba active sheet.

Wigi
 
Bvb.

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    Select Case ActiveSheet.Name

    Case "Doc.4":

        If Range("P6") = vbNullString Then
            MsgBox "Veld P6 is niet ingevuld!"
            Cancel = True
        End If

        If Range("P7") = vbNullString Then
            MsgBox "Veld P7 is niet ingevuld!"
            Cancel = True
        End If

        If Range("P9") = vbNullString Then
            MsgBox "Veld P9 is niet ingevuld!"
            Cancel = True
        End If

    Case "Doc.5":

        If Range("P2") = vbNullString Then
            MsgBox "Veld P2 is niet ingevuld!"
            Cancel = True
        End If

    End Select

End Sub

By the way, Googlen helpt ook vaak goed. Google maar eens op: excel vba active sheet.

Wigi

Hey Wigi,

Bedankt weer voor je reactie! :D Ik heb net meteen ff de code uitgeprobeerd.
Werkt top! Echt super hier kan ik mee verder! Zoals je wel zult begrijpen heb ik
meerdere functionaliteiten in dit Excel bestand verwerkt. Maar dit was lastig om goed werkend te krijgen. Nogmaals mijn dank! Greetz JW :thumb:
 
Of:

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  for j= 1 to 4
    c0=choose(j,[Doc.4!P6],[Doc.4!P7],[Doc.4!P9],[Doc.5!P2])
    if c0="" then exit for
  next
  if j<5 then msgbox "Veld " & choose(j,6,7,9,2) & " is niet ingevuld"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan