• 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/VBA: Compilatiefout in verborgen module: ThisWorkbook

Status
Niet open voor verdere reacties.

tijmen_4real

Gebruiker
Lid geworden
20 apr 2005
Berichten
338
Hoi.

Sinds een aantal dagen krijg ik, om onbekende reden, bij het opstarten van een Excel bestand (zie bijlage) de volgende foutmelding:
Compilatiefout in verborgen module: ThisWorkbook

De VBA-code in ThisWorkbook ziet eruit als volgt:
Code:
Private Sub Workbook_Open()
    With ActiveWindow
    If .FreezePanes Then .FreezePanes = False
    .SplitColumn = 11
    .SplitRow = 5
    .FreezePanes = True
End With
    'Sheets("Planbord").Unprotect Password:="2132"
    Call verbergdatumtotVandaag
    MsgBox ("De datum van vandaag is " & Date & vbCrLf & "En het is nu weeknummer " & WorksheetFunction.WeekNum(Now, vbMonday) - 1 & "." & vbCrLf & "Fijne dag!")
    'Sheets("Planbord").Protect Password:="2132"
    ActiveWorkbook.Save
End Sub

Sub verbergdatumtotVandaag()
    Dim c As Range
    For Each c In Sheets("Planbord").Range("L5:LU5")
        If c.Value < Date Then
            If c.EntireColumn.Hidden = True Then GoTo SkipA
            Else: c.EntireColumn.Hidden = False
                c.EntireColumn.Hidden = True
            End If
        End If
SkipA:
    Next c
End Sub

Sub verbergprojectnaDeadline()
    Dim c As Range
    For Each c In Sheets("Planbord").Range("G7:G100")
        If c.Value < Date Then
            If c.EntireColumn.Hidden = True Then GoTo SkipB
            Else: c.EntireRow.Hidden = False
                c.EntireRow.Hidden = True
            End If
        End If
SkipB:
    Next c
End Sub

Sub allerijenTonen()

    With Sheets("Planbord")

    If .Rows("7:17").EntireRow.Hidden = True Then
    .Rows("7:17").EntireRow.Hidden = False
    .CommandButton1.Visible = True
    .CommandButton6.Visible = False
    End If

    If .Rows("9:28").EntireRow.Hidden = False Then
    .Rows("19:28").EntireRow.Hidden = True
    .CommandButton2.Visible = False
    .CommandButton7.Visible = True
    End If

    If .Rows("30:34").EntireRow.Hidden = True Then
    .Rows("30:34").EntireRow.Hidden = False
    .CommandButton3.Visible = True
    .CommandButton8.Visible = False
    End If

    If .Rows("36:53").EntireRow.Hidden = True Then
    .Rows("36:53").EntireRow.Hidden = False
    .CommandButton9.Visible = False
    .CommandButton4.Visible = True
    End If

    If .Rows("55:104").EntireRow.Hidden = True Then
    .Rows("55:104").EntireRow.Hidden = False
    .CommandButton10.Visible = False
    .CommandButton5.Visible = True
    End If
    End With

End Sub

Geen idee waarom deze foutmelding verschijnt.
Wie wilt mij vertellen wat (of welk VBA) hier de boosdoener van is?
Bij voorbaat dank en met vriendelijke groet,

Tijmen

EDIT:

Na code testen en uitsluiten lijkt hier iets niets te kloppen:

Code:
Sub verbergdatumtotVandaag()
    Dim c As Range
    For Each c In Sheets("Planbord").Range("L5:LU5")
        If c.Value < Date Then
            If c.EntireColumn.Hidden = True Then GoTo SkipA
            ElseIf c.EntireColumn.Hidden = False Then
                c.EntireColumn.Hidden = True
            End If
        End If
SkipA:
    Next c
End Sub

Sub verbergprojectnaDeadline()
    Dim c As Range
    For Each c In Sheets("Planbord").Range("H7:H100")
        If c.Value < Date Then
            If c.EntireColumn.Hidden = True Then GoTo SkipB
            ElseIf c.EntireRow.Hidden = False Then
                c.EntireRow.Hidden = True
            End If
        End If
SkipB:
    Next c
End Sub

Wat doe ik verkeerd???
 

Bijlagen

  • planning.xlsm
    174,7 KB · Weergaven: 22
Laatst bewerkt:
1. je plaatst een bestand met een vergrendeld VBProject
2. je gebruikt samengevoegde cellen
3. je gebruikt GoTo in de code
 
1. je plaatst een bestand met een vergrendeld VBProject
2. je gebruikt samengevoegde cellen
3. je gebruikt GoTo in de code

1: Sorry, ww is 2132
2: Toch niet in de cellen die deel uitmaken van code? :-(
3: Wat is het alternatief als ik een if-else wil maken met als ... dan niets doen?
 
Dit zal beter gaan. En zonder die Goto's.
Andere code heb ik niet nagezien.
 

Bijlagen

  • planning.xlsm
    177,6 KB · Weergaven: 10
Laatst bewerkt:
In this workbook_open volstaat:

Code:
Private Sub Workbook_Open()
    Columns(12).Resize(, Date - Cells(5, 12)).Hidden = True
End Sub

het freezepanes kun je gewoon met de hand instellen. Dat blijft bewaard. VBA overbodig

en je kunt met 50% minder knoppen toe:

Code:
Private Sub CommandButton6_Click()
   with CommandButton6 
       Rows("7:17").Hidden = .Caption = "inklappen"
      .Caption = IIf(.Caption = "inklappen", "uitklappen", "inklappen")
   end with
End Sub

en 600% minder code:
Code:
Sub allerijenTonen()
   Rows.Visible = True
End Sub

Het is overigens verstandig gegevens en grafische weergave in aparte werkbladen op te nemen.
Zie de bijlage
 

Bijlagen

  • Dienstplan_DerH_007_nl.xlsb
    67 KB · Weergaven: 5
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan