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

Marco alleen actief als tabblad zichtbaar is

Status
Niet open voor verdere reacties.

wimix69

Gebruiker
Lid geworden
19 mrt 2011
Berichten
223
Hallo,

Ik gebruik een macro die foutmelding geeft als bepaalde veplichten cellen vergeten zijn in te vullen. Het document bestaat uit meerdere tabbladen. Het was ooit de bedoeling dat als het tabblad verborgen was de marco dan niet werkt, dus niet de foutmeldingen aangeeft van dit tabblad (tabblad rood) ook als zijn Cel F210 en F213 ingevuld . Hoe moet de marco aan gepast worden zodat dit wel werkt?
 

Bijlagen

Lijkt het je niet handig er ook bij te vertellen om welke macro in welke module of werkblad dat gaat?
 
Altijd handig inderdaad

Het haat om de macro in ThisWorkbook

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets("Rood").Activate
If Range("F210") <> "" And Range("F213") <> "" Then
cellen = Split("J218 O218")
For i = 0 To UBound(cellen)
If Range(cellen(i)) = "" Then
Select Case Range(cellen(i)).Address(0, 0)
Case "J218": MsgBox "Cel J218 in Rood is niet ingevuld", vbCritical, "Verplichte cel"
Case "O218": MsgBox "Cel O218 in Rood is niet ingevuld", vbCritical, "Verplichte cel"
End Select

Cancel = True
Exit For
End If
Next i
Else

End If
End Sub
 
Gebruik bij het plaatsen van code ook codetags zodat de inspringpunten ook zichtbaar zijn.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    [COLOR="#FF0000"]If Sheets("Rood").Visible Then[/COLOR]
        Sheets("Rood").Activate
        If Range("F210") <> "" And Range("F213") <> "" Then
            cellen = Split("J218 O218")
            For i = 0 To UBound(cellen)
                If Range(cellen(i)) = "" Then
                    Select Case Range(cellen(i)).Address(0, 0)
                        Case "J218": MsgBox "Cel J218 in Rood is niet ingevuld", vbCritical, "Verplichte cel"
                        Case "O218": MsgBox "Cel O218 in Rood is niet ingevuld", vbCritical, "Verplichte cel"
                    End Select
                    Cancel = True
                    Exit For
                End If
            Next i
        End If
   [COLOR="#FF0000"] End If[/COLOR]
End Sub
 
eerste regel
Code:
If Not Sheets("Rood").Visible Then Exit Sub
net iets later en dezelfde oplossing ....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan