Tabblad wegschrijven zonder formules

Status
Niet open voor verdere reacties.

TEP

Gebruiker
Lid geworden
2 nov 2017
Berichten
42
Hallo

Via vba maak ik tabbladen bij aan en daar komen wat formules in te staan bij wijze van evaluatie van een mdw.
elk tabblad wens ik weg te schrijven naar het lokale netwerk - so far so good.

De formules op die nieuw weggeschreven .xlsx blijven echter verwijzen naar tabbladen in de originele excel.

de vraag van 1 miljoen is dus: kan ik een tabblad wegschrijven als nieuwe .xlsx, maar zonder de formules (dat er automatische de 'waarden' in staan en niet de formules dus).

Voorlopig gebruik ik deze geheel simpele code:
Code:
'Een kopie van een tabblad maken en opslaan als nieuw bestand
Sub TestWegschrijvenTab()
    PAD = "C:\Users\TepMap\testvba"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Sheets(NaamMedewerker).Copy
    With ActiveWorkbook
        .SaveAs PAD & "\" & NaamMedewerker & ".xlsx", 51
        .Close 0
    End With

End Sub

alle idees welgekomen. Dank alvast!

Gr, Tep
 
Laatst bewerkt:
Dat kan door voor het opslaan eerst deze Sub uit te voeren:
Code:
Sub AlleFormuleNaarWaarden()
    Dim o_xlsmap As Workbook, o_xlsbld As Worksheet, o_xlscel As Range
    Dim s_row As Long, s_rows As Long
    Dim s_col As Long, s_cols As Long
    Dim s_calculation As Long
        
    If Workbooks.Count = 0 Then Exit Sub
   
    Set o_xlsmap = ActiveWorkbook
    
    Application.ScreenUpdating = False
    s_calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    Application.Calculate
    
    On Local Error Resume Next
    
    For Each o_xlsbld In o_xlsmap.Worksheets
        s_rows = 0
        s_cols = 0
        
        s_rows = o_xlsbld.Cells.Find(What:="*", LookIn:=xlFormulas, SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
        s_cols = o_xlsbld.Cells.Find(What:="*", LookIn:=xlFormulas, SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column
    
        If s_rows = 0 Then s_rows = 1
        If s_cols = 0 Then s_cols = 1
        
        For s_row = 1 To s_rows
            For s_col = 1 To s_cols
                Set o_xlscel = o_xlsbld.Cells(s_row, s_col)
                If o_xlscel.HasFormula Then o_xlscel.Value = o_xlscel
            Next s_col
        Next s_row
    Next o_xlsbld
    
    Set o_xlsmap = Nothing
    
    Application.ScreenUpdating = True
    Application.Calculation = s_calculation
End Sub

De formules worden dan uit het geopende document verwijderd.
Let er dus goed op dat je deze dan niet opslaat.
Of zorg ervoor dat die Sub in het juiste document zijn werk doet.
 
Laatst bewerkt:
Bedankt - kan ik die gewoon 1-op-1 kopiëren en gebruiken?
 
Dat werkt hier gelijk een gelubriceerd wieltje op een nieuwe fiets - HEERLIJK! :cool:

Vielen dank @edmoor!

Gr, Tep.
 
Een extra vraag hierop als dat kan (of moet ik nieuwe thread maken?)

zou in 1 moeite door dan ook de nieuwe xlsx willen wegschrijven als pdf. enig idee hoe?

dank!
 
Dat kan met iets als dit:
Code:
ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:="C:\Diversen\Tep.pdf", _
    OpenAfterPublish:=True
 
Laatst bewerkt:
2 problemen:
1- formaat is niet ok en schrijft enkel eerste 5 cellen van kolom A weg in de pdf
2- de pdf wordt niet weggeschreven op de Path-naam, ik weet niet waar wel

ik vermoed dat 1- is op te lossen dmv een afdrukbereik in te stellen, maar 2- zou ik niet weten hoe.

jij nog idees?
 
Laatst bewerkt:
Daarom zei ik ook, zoiets.
Als je een voorbeeld plaatst van je document krijg je preciezer antwoord.
 
Ben er zelf achtergekomen - is gelukt.

dank voor alle hulp!
 

Bijlagen

  • TEST wegschrijf PDF.xlsx
    400,1 KB · Weergaven: 26
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan