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

werkboek verkleinen.

Status
Niet open voor verdere reacties.

leofact

Redacteur
Lid geworden
10 feb 2007
Berichten
6.377
Ik wil een werkboek zo klein mogelijk maken, zonder aan inhoud en opmaak te komen.
Dwz alle overbodige cellen etc. eruit die je krijgt tijdens het maken van het sheet.
Ik heb daar ooit wel eens een programma voor gebruikt, maar dat hielp nauwelijks.
Wie weet raad?
mvg leo
 
Dwz alle overbodige cellen etc. eruit die je krijgt tijdens het maken van het sheet.
Wat bedoel je met alle overbodige cellen?
De lege cellen die onder en rechts van de ingevulde staan?
Een optie die wel eens wil helpen is om alle lege regels en lege kolommen te verwijderen en meteen daarna de sheet op te slaan.
 
Dit bedoel ik zo'n beetje, maar ik heb wel eens trucs gelezen om dat snel en handig te doen en daar ben ik naar op zoek.
 
Druk Ctrl-End en je hebt de laatste cel.

Vervolgens delete je tussenliggende overbodige rijen en kolommen, dan nog opslaan en klaar.
 
Met onderstaande macro verwijder je de overbodige rijen en cellen.
Laatste cel wordt daardoor ook gereset. =SpecialCells(xlCellTypeLastCell)

Code:
Sub DeleteUnused()

Dim myLastRow As Long
Dim myLastCol As Long
Dim wks As Worksheet
Dim dummyRng As Range


For Each wks In ActiveWorkbook.Worksheets
  With wks
    myLastRow = 0
    myLastCol = 0
    Set dummyRng = .UsedRange
    On Error Resume Next
    myLastRow = _
      .Cells.Find("*", After:=.Cells(1), _
        LookIn:=xlFormulas, LookAt:=xlWhole, _
        SearchDirection:=xlPrevious, _
        SearchOrder:=xlByRows).Row
    myLastCol = _
      .Cells.Find("*", After:=.Cells(1), _
        LookIn:=xlFormulas, LookAt:=xlWhole, _
        SearchDirection:=xlPrevious, _
        SearchOrder:=xlByColumns).Column
    On Error GoTo 0

    If myLastRow * myLastCol = 0 Then
        .Columns.Delete
    Else
        .Range(.Cells(myLastRow + 1, 1), _
          .Cells(.Rows.Count, 1)).EntireRow.Delete
        .Range(.Cells(1, myLastCol + 1), _
          .Cells(1, .Columns.Count)).EntireColumn.Delete
    End If
  End With
Next wks

End Sub
 
Wauw,
Dat ga ik vanavond onmiddelijk proberen
Op een kopie :D
Alvast bedankt
Groeten Leo
 
Deze reactie wilde ik vanmiddag plaatsen, maar kwam toen ff niet op de naam van de goeroe..:rolleyes:
Luc Heyndrickx is zijn naam en heeft op z'n site een heleboel leuke en handige addins. In jouw geval moet je maar even kijken naar Excel in het navigatiemenu en dan naar beneden scrollen voor de add-in 'bestandscompressie'. Maar er staan ook zeker andere fraaie handigheidjes bij!

Groet, Leo
 
Mooie sites, ik krijg mn hele favorieten vol met excel links:rolleyes:
Beide oplossingen doen het zelfde en geven hetzelfde resultaat.
7 kb eraf van 1,2mb
Niet echt indrukwekkend. Blijkbaar viel het mee met de lege cellen.
toch bedankt voor de oplossingen.
mvg leo
 
Nog even een aanvulling, ik wist dat het nog korter moest kunnen.
Probeer het volgende maar eens:

Code:
Sub verklein()
     ActiveSheet.UsedRange
End Sub

Controleer daarna maar met Ctrl+End

Korter kan volgens mij niet.
 
Beste Leofact,

Heb je al eens gekeken naar verborgen werkbladen? Opmaak > Blad > Zichtbaar maken.
Heb je al eens gekeken naar de gebruiker formules. Zitten daar formules bij zoals SOMPRODUCT? Die vreten veel geheugen.
Wordt er gebruik gemaakt van en draaitabel? Die vreet ook geheugen.
Wordt er gebruik gemaakt van Voorwaardelijke Opmaak?

Richard
 
inderdaad veel voorwaardelijke opmaak en zelf gedefineerde kleuren.
Noodzakelijk (althans dat vind ik dan;)), dus daar is weinig aan te doen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan