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

SaveAs alleen waarden, geen formules (EXCEL)

Status
Niet open voor verdere reacties.

herrfotograf

Gebruiker
Lid geworden
13 nov 2007
Berichten
26
Hallo experts,

Via de zoekfunctie ben ik het onderstaande script tegen gekomen. Deze doet nagenoeg precies wat ik wil. Een kopie van de sheet in een nieuwe workbook opslaan.

Nu bevat de sheet welke ik wil kopiëren formules doe verwijzen naar een andere sheet (productlijst) waardoor de copie vol komt te staan met verwijzingen naar een ander workbook.

Is er een mogelijkheid om dit script te modificeren zodat er of alleen waarden (met behoud van opmaak, omdat er bijv. ook een datum in zit) in het kopiebestand komen?

Een alternatief mag zijn dat het kopiebestand alleen een image of staticMetafile bevat zoals Verkoopfactuur5.xls. ik heb geprobeerd de VBA code daarvan te ontleden maar dit is tot op heden niet gelukt.

Code:
Sub opslaanwerkbonnen()
    
    Dim sBestandsnaam As String
    Dim wkbNieuw As Workbook
    Dim wksOorspronk As Worksheet
    
    Application.ScreenUpdating = False
    
    Set wksOorspronk = ActiveSheet
    
    Set wkbNieuw = Workbooks.Add
    
    With wksOorspronk
        sBestandsnaam = .Range("C2").Value
        .Range("A1:C30").Copy wkbNieuw.Sheets(1).Cells(1)
    End With
    
    With wkbNieuw
        .SaveAs "C:\" & sBestandsnaam
        .Close
    End With
    
    Application.ScreenUpdating = True
End Sub

Alvast bedankt voor jullie suggesties :thumb:
 
Herrfotograf, Probeer dit kleine stukje code 'ns uit op een sheet met formules...
Code:
Sub PlakAlsTekst()
    
    Application.ScreenUpdating = False
    
    ActiveSheet.Copy
    Cells.Copy
    Cells.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("A1").Select
    Application.CutCopyMode = False
    
    Application.ScreenUpdating = True
    
End Sub
Ik denk dat dit precies is wat je zoekt...

Groet, Leo
 
Volgens mij moet het zijn
Code:
Sub PlakAlsTekst()
    
    Application.ScreenUpdating = False
    
    ActiveSheet.Copy
    Cells.Copy
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False    
    Range("A1").Select
    Application.CutCopyMode = False
    
    Application.ScreenUpdating = True
    
End Sub
Dit zorgt ervoor dat ook de opmaak van de getallen mee wordt gekopieerd.

Gr Paul
 
Paul,
Volgens mij moet het zijn
Prima toevoeging! :thumb:

Ik had 't ff vlug geschreven en getest op een paar simpele formules zonder opmaak in een sheet....:rolleyes: En dan zie je wel 'ns dingen (zoals 'opmaak') over 't hoofd...:o

Groet, Leo
 
"A bit more dense" ;)

Code:
Sub PlakAlsTekst()
    
    Application.ScreenUpdating = False
    
    Cells.Copy
    Range("A1").PasteSpecial xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False
    
    Application.ScreenUpdating = True
    
End Sub

Wigi
 
Laatst bewerkt:
dit ziet er beter uit dan wat ik er met macro recorder van maakte, nice!
maar, hoe voeg ik dit samen met bovenstaande SaveAs?
 
Hier is uw code voor het kopiëren

Code:
 .Range("A1:C30").Copy wkbNieuw.Sheets(1).Cells(1)

dat zal je moeten vervangen door de andere code (natuurlijk niet letterlijk...) Mag jij zelf nog even eerst proberen, dan heb je er zelf ook nog iets aan.

Wigi
 
(..)Mag jij zelf nog even eerst proberen, dan heb je er zelf ook nog iets aan.

Wigi


Daar ben ik het helemaal met je eens. Ik zet de vraag vast op opgelost, mocht ik er toch niet uit komen dan meld ik me wel weer :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan