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

Moet met macro activatie aan ,anders bladen weg

Status
Niet open voor verdere reacties.

Schipperjte

Gebruiker
Lid geworden
24 jan 2006
Berichten
212
Hoi,

Heb een mooie macro gevonden op internet , werkt goed

Even een uitleg , Ik heb een excel invul scherm gemaakt en deze neemt een heleboel gegevens over naar andere bladen in excel en sommige naar Word met koppelingen .

Het werkt eigenlijk alleen goed als er met macro's gewerkt kan worden .

Het verbergt de bladen XL Very hidden en tovert ze tevoorschijn als de macro instellingen aanstaan.

Nu komt het kleine probleempje, er is 1 blad Gegevens wat eigenlijk verborgen moet blijven . Ben al een beetje aan het proberen geweest maar kom er niet uit .
Of hij doet het niet meer of het werkt niet

Hier de macro

en het test bestandje

Mvrgr Bas

Private Sub Workbook_Open()



Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Dim m As Date, ws As Worksheet


m = DateSerial(2012, 12, 31)

If Date > m Then
ThisWorkbook.Close
Else
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "FOUT" Then
ws.Visible = True
End If
Next
Sheets("FOUT").Visible = xlVeryHidden
End If

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)



Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Dim m As Date, ws As Worksheet

Sheets("FOUT").Visible = True
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "FOUT" Then
ws.Visible = xlVeryHidden
End If
Next

ThisWorkbook.Save

For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "FOUT" Then
ws.Visible = True
End If
Next
Sheets("FOUT").Visible = xlVeryHidden

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
ThisWorkbook.Saved = True
Cancel = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)



Dim Msg As String, Ans As Variant
If Not ThisWorkbook.Saved = True Then
Msg = "Do you want to save the changes you made to '"
Msg = Msg & ThisWorkbook.Name & "'?"
Ans = MsgBox(Msg, vbQuestion + vbYesNoCancel)
Select Case Ans
Case vbYes
ThisWorkbook.Save
ThisWorkbook.Saved = True
Case vbNo
ThisWorkbook.Saved = True
Case vbCancel
Cancel = True
Exit Sub
End Select
End If
End Sub
 

Bijlagen

  • FOUT.xls
    42,5 KB · Weergaven: 24
Dit werkt wel als macro ,maar dan moet ik hem zelf activeren


Sub HideSheet()
Sheets("Gegevens").Visible = False
End Sub


als ik deze aan die andere macro plak doet hij het niet ?
 
Schipperjte,

Graag de code de volgende keer selecteren en dan boven op # klikken, komt je code in een apart vak te staan.
Zoals hier onder.
Code:
Sub HideSheet()
Sheets("Gegevens").Visible = False
End Sub
 
Begin eens met code wieden:
Code:
Private Sub Workbook_Open()
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False

    If Date > DateSerial(2012, 12, 31) Then
       ThisWorkbook.Close
    Else
       ActiveWorkbook.sheets.Visible = True
       ActiveWorkbook.sheets("fout").visible=false
    End If

    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
  End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan