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

Opgelost Modules ingeklapt vs uitgeklapt

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

trainers

Verenigingslid
Lid geworden
8 feb 2012
Berichten
210
Office versie
MS 365
Bij opening van een bestand ga ik naar de VBA.
Links (VBA Project) zijn de objecten uitgeklapt, modules echter niet. Ik moet dus op de + klikken om deze uit te vouwen.

Ander bestand:
Objecten + modules uitgeklapt.

Waar kan ik instellen dat de modules standaard uitgeklapt worden getoond.

Bij voorbaat dank.
Groet,
Trainers
 
Ik heb de vraag eens voorgelegd aan ChatGPT. Het antwoord:

In Excel VBA kun je modules standaard uitgeklapt tonen door de Visual Basic Editor in te stellen om de projectstructuur altijd volledig uit te klappen. Helaas heeft de Visual Basic Editor zelf geen ingebouwde optie om alle modules altijd automatisch uitgeklapt te tonen bij het openen van een project. Maar er is een kleine workaround die je kunt gebruiken met een VBA-script om alle modules uit te klappen telkens als je de editor opent.

Hieronder vind je een script om dit te doen:
1. Voeg een nieuwe module toe door in de editor te gaan naar Invoegen > Module.
2. Plak het volgende script in de module die je hebt toegevoegd:
Code:
Sub ExpandAllModules()
    Dim vbProj As VBIDE.VBProject
    Dim vbComp As VBIDE.VBComponent

    ' Instellen van de huidige VBA-project
    Set vbProj = ThisWorkbook.VBProject

    ' Doorloop alle modules en open ze
    For Each vbComp In vbProj.VBComponents
        DoEvents
        vbComp.CodeModule.CodePane.Window.Visible = True
    Next vbComp
End Sub
3. Voer het script handmatig uit door in de editor op F5 te drukken terwijl de cursor in het script staat. Hiermee worden alle modules uitgeklapt in de Visual Basic Editor.

Als je wilt dat het automatisch gebeurt bij het openen van de Editor, kun je overwegen dit script te koppelen aan een Workbook open-event.
 
En hiermee zorg je ervoor dat de werkbladmodules niet openklappen:
Code:
        If vbComp.Type <> 100 Then vbComp.CodeModule.CodePane.Window.Visible = True
 
AlexCEL: respect, ben toch wel benieuwd hoe je dat gedaan hebt.
Echter krijg ik bij 'foutopsporing' bij Dim vbProj As VBIDE.VBProject de volgende foutmelding:

Compileerfout
Een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd.

Groet,
Trainers
 
Wederom antwoord van ChatGPT:

De foutmelding die je ziet, komt doordat de VBIDE-bibliotheek niet standaard is ingeschakeld in de VBA-omgeving. Deze bibliotheek is nodig om met de VBA-objecten zoals VBProject en VBComponent te werken. Om dit probleem op te lossen, kun je de bibliotheek handmatig inschakelen. Volg de onderstaande stappen:

  1. Open de Visual Basic Editor door op Alt + F11 te drukken in Excel.
  2. Ga naar Extra > Verwijzingen in de menubalk.
  3. Zoek in de lijst naar Microsoft Visual Basic for Applications Extensibility 5.3.
  4. Vink deze optie aan en klik op OK.
Na het inschakelen van deze verwijzing, zou de foutmelding moeten verdwijnen. Probeer nu het script opnieuw uit te voeren; het zou nu zonder problemen moeten werken.
 
Bij mij is het deze, wellicht afhanklijk van de Office versie:

VBIDE.jpg
 
Dank je Edmoor.
Ik heb abbo 365 en Microsoft Visual Basic for Applications Extensibility 5.3. heb ik gevonden.

De door jou genoemde verwijzing kan ik niet vinden.

Het werkt!
Ben nu met andere bestanden aan de slag gegaan en merk dat ik bij elk bestand de verwijzing moet activeren.
Ga lekker verder prutsen en laat het jullie weten.

Groet,
Trainers

PS: Chapeau AlexCEL !
Maar hoe kan ik ChatGPT zelf raadplegen?
 
Gewoon naar ChatGPT gaan (hier), inloggen op een gewenste manier en de vraag stellen...
 
Laatst bewerkt:
Dank je wel. Weer wat geleerd. :)
Ga dat eens uitproberen.
 
En in Bing vind je Copilot. Doet hetzelfde. Perfect..
 
Of Perplexity of Gemini (Google), er komen steeds meer van dit soort AI tools.
 
Zelfs in Microsoft Office: Microsoft Designer. Ook, of juist, voor afbeeldingen ed.
 
Als je niet in al je documenten een referentie naar "Microsoft Visual Basic for Applications Extensibility 5.3" wilt opnemen kun je het zo doen, je hoeft dan alleen in je Personal.xlsb die verwijzing op te nemen.

Plaats deze in je Personal.xlsb:
Code:
Public Sub ExpandModules(wb)
    For Each comp In Workbooks(wb).VBProject.VBComponents
        If comp.Type <> 100 Then comp.CodeModule.CodePane.Window.Visible = True
    Next
End Sub

En deze in je Workbook_Open:
Code:
Private Sub Workbook_Open()
    On Error Resume Next
    Application.Run "'PERSONAL.XLSB'!ExpandModules", ThisWorkbook.Name
End Sub

Door de "On Error Resume Next" zal het openen van je document op andere PC's waar jouw Personal.xlsb niet op staat geen foutmelding geven.
 
Zijn bij mij altijd uitgeklapt zonder VBA.
Een paar klikken op de gele map-afbeelding tot ze uitgeklapt zijn.Naamloos.webp
Zie afdruk.
 
@AHulpje Top, dank je wel.

@HSV Die mogelijkheid had ik ook al gevonden. Mijn doelstelling is echter het volgende beeld:

Map1 xlsm.webp

Maar bij het maken van dit bestand (Map1.xlsm) blijken de modules gewoon uitgeklapt.
Zonder dat ik de hierboven gegeven VBA moest gebruiken!
Opslaan, weer openen en de modules blijven uitgeklapt.

Ik heb het vermoeden dat bij de bestanden (waarbij de modules dus NIET zijn uitgeklapt) sprake is van oude xls bestanden die nu als xlsm te boek staan.

Groet,
Trainers
 
Werkt gewoon, ook in oude .xls bestanden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan