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

blad opslaan zonder formules

Status
Niet open voor verdere reacties.

pasan

Terugkerende gebruiker
Lid geworden
6 nov 2010
Berichten
1.110
ik heb een excel blad met opmaak en formules ("blad1")
nu wil ik het blad graag opslaan als. met behulp van een macro
dit lukt me nog wel maar ik wil graag de formules opslaan als value
en wat ik ook probeer ik krijg het niet voor elkaar

in excel 2000

wie kan me helpen?
 
Laatst bewerkt:
Voeg de bijgevoegde routine toe en roep deze aan op het moment dat je dat wilt.

Code:
Sub VerwijderFormules()
    Dim o_xlsmap As Workbook, o_xlsbld As Worksheet, o_xlscel As Range, a_calculation As Long
        
    If Workbooks.count = 0 Then Exit Sub
    
    Set o_xlsmap = ActiveWorkbook
    
    Application.ScreenUpdating = False
    a_calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    Application.Calculate
    
    On Local Error GoTo Foutje
    
    For Each o_xlsbld In o_xlsmap.Worksheets
        For Each o_xlscel In o_xlsbld.UsedRange
            If o_xlscel.HasFormula Then
                o_xlscel.Value = o_xlscel
            End If
        Next o_xlscel
    Next o_xlsbld
    
    Set o_xlsmap = Nothing
    
Foutje:
    Application.ScreenUpdating = True
    Application.Calculation = a_calculation
End Sub

Hij doet het prima maar of dat ook in Office 2000 zo is kan ik niet zeggen.
 
Laatst bewerkt:
Neem een macro op waarin je copy/paste speciaal waarden doet.
 
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False

Sheets("blad1").Copy
With ActiveWorkbook

Application.DisplayAlerts = False
.SaveAs "C:\Users\blabla\Desktop\excel test\" & Format(DateValue(Now - 8.5 / 24), "dd-mm-yyyy") & ".xls"

ActiveSheet.Copy After:=ActiveSheet
    With ActiveSheet

[COLOR="red"]kan ik hier de code toevoegen  Edmoor?[/COLOR]

End With
.Close
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
ThisWorkbook.Save
 
Laatst bewerkt:
beste Cobbe ook dat heb ik gedaan en geprobeerd toe tevoegen maar met bovenstaande code krijg ik het niet aan de praat helaas
in excel 2010 verdwijnt met bovenstaande code alle bladcode
maar in excel 2000 gebeurt dit niet dus probeer ik de formules als value te kopieeren zonder dat de opmaak verloren gaat
 
Laatst bewerkt:
Ik zou net voor ThisWorkbook.Save
Call VerwijderFomules toevoegen.
 
en hoe ziet dat Call er dan uit? ik neem aan niet letterlijk zoals jij dat neer gezet hebt toch?

edit ik snap hm
ik probeer het toe te passen
 
Laatst bewerkt:
In mijn eerste reactie staat de volledige routine met de naam VerwijderFormules.
Deze zet je in z'n geheel ergens in het VBA project neer.
 
zover zo goed
dank je edmoor
het werkt qua formules naar value maar alle samengevoegde cellen zijn niet meer samen gevoegd
de kopie van het blad blijft open nu
kunnen de samengevoegde cellen samengevoegd blijven?
en kan de kopie opgeslagen en afgelsoten worden?
 
Die code doet niets met samengevoegde velden dus waarom die dan niet meer samengevoegd zijn weet ik niet.
Voor het opslaan en afsluiten kun je gewoon je eigen code blijven gebruiken.
Het zou kunnen zijn dat de routine VerwijderFormules niet vanaf een juiste plek wordt aangeroepen maar daarvoor zou ik je code moeten bekijken.
 
bij deze de totale code

Code:
Private Sub CommandButton1_Click()

Sheets("blad1").Copy
With ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
.SaveAs "C:\Users\blabla\Desktop\excel test\" & Format(DateValue(Now - 8.5 / 24), "dd-mm-yyyy") & ".xls"
 
ActiveSheet.Copy After:=ActiveSheet
    With ActiveSheet
.Range("AE1").Delete
.Shapes("CommandButton1").Delete

End With

Application.DisplayAlerts = True
End With

ThisWorkbook.Save
Call VerwijderFomules
.Close
Application.ScreenUpdating = True
End Sub

Sub VerwijderFormules()
    Dim o_xlsmap As Workbook, o_xlsbld As Worksheet, o_xlscel As Range, a_calculation As Long
     Application.ScreenUpdating = False
Application.DisplayAlerts = False
    If Workbooks.Count = 0 Then Exit Sub
    
    Set o_xlsmap = ActiveWorkbook
    
    Application.ScreenUpdating = False
    a_calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    Application.Calculate
    
    On Local Error GoTo Foutje
    
    For Each o_xlsbld In o_xlsmap.Worksheets
        For Each o_xlscel In o_xlsbld.UsedRange
            If o_xlscel.HasFormula Then
                o_xlscel.Value = o_xlscel
            End If
        Next o_xlscel
    Next o_xlsbld
    
    Set o_xlsmap = Nothing
    
Foutje:
    Application.ScreenUpdating = True
    Application.Calculation = a_calculation
End Sub
 
Je hebt de Call VerwijderFormules NA de .save gezet.

Verder kloppen je inspringpunten niet waardoor het moeilijk lezen is.
 
en het volgende gebeurd nu ook
in de kopie map bestaan nu 2 bladen, blad 1 is het orgineel met formules en blad 2 is de kopie zonder formules
eigenlijk is het wenselijk dat alleen 1 blad zonder formules overblijft in de kopie map

Code:
Private Sub CommandButton1_Click()

Sheets("blad1").Copy
With ActiveWorkbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
.SaveAs "C:\Users\blabla\Desktop\excel test\" & Format(DateValue(Now - 8.5 / 24), "dd-mm-yyyy") & ".xls"
 
  ActiveSheet.Copy After:=ActiveSheet
With ActiveSheet

.Shapes("CommandButton1").Delete

End With

Application.DisplayAlerts = True
End With
Call VerwijderFomules
  ThisWorkbook.Save

.Close
Application.ScreenUpdating = True
End Sub

Code:
Sub VerwijderFormules()
    Dim o_xlsmap As Workbook, o_xlsbld As Worksheet, o_xlscel As Range, a_calculation As Long
     Application.ScreenUpdating = False
Application.DisplayAlerts = False
    If Workbooks.Count = 0 Then Exit Sub
    
    Set o_xlsmap = ActiveWorkbook
    
    Application.ScreenUpdating = False
    a_calculation = Application.Calculation
    Application.Calculation = xlCalculationManual
    Application.Calculate
    
    On Local Error GoTo Foutje
    
    For Each o_xlsbld In o_xlsmap.Worksheets
        For Each o_xlscel In o_xlsbld.UsedRange
            If o_xlscel.HasFormula Then
                o_xlscel.Value = o_xlscel
            End If
        Next o_xlscel
    Next o_xlsbld
    
    Set o_xlsmap = Nothing
    
Foutje:
    Application.ScreenUpdating = True
    Application.Calculation = a_calculation
End Sub

ik heb de call op meerdere plekken geprobeerd de kopie blijft open staan de samen gevoegde cellen inmiddels opgelost dit kwam door mezelf door met verschillende codes te testen eerder vandaag
 
Laatst bewerkt:
Dat komt waarschijnlijk omdat er dingen niet goed staan.
Maak eerst je inspringpunten in orde, dan leest het een stuk makkelijker.
 
ik heb eerlijk gezegd geen idee hoe ik de regel inspringing beter zou kunnen indelen

Code:
Private Sub CommandButton1_Click()

Sheets("blad1").Copy
With ActiveWorkbook
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False
   .SaveAs "C:\Users\blabla\Desktop\excel test\" & Format(DateValue(Now - 8.5 / 24), "dd-mm-yyyy") & ".xls"
 ActiveSheet.Copy After:=ActiveSheet
 
  With ActiveSheet
   .Shapes("CommandButton1").Delete
     End With
       Application.DisplayAlerts = True
     End With
   Call VerwijderFomules
  ThisWorkbook.Save
Close
Application.ScreenUpdating = True
End Sub
 
opgelost

het was inderdaad de volgorde
Code:
Private Sub CommandButton1_Click()

Sheets("blad1").Copy
With ActiveWorkbook
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False
   .SaveAs "C:\Users\blabla\Desktop\excel test\" & Format(DateValue(Now - 8.5 / 24), "dd-mm-yyyy") & ".xls"
 ActiveSheet.Copy After:=ActiveSheet
 
 With ActiveSheet
   .Shapes("CommandButton1").Delete
     End With
   .Close
  Call VerwijderFormules
 ThisWorkbook.Save
  

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End With
End Sub

Dank je wel Edmoor :thumb::thumb::thumb:
 
Laatst bewerkt:
pffffffffffffff

net getest in office 2000
in de kopie is nu idd alle formules in values das heel mooi
maar ook in het orgineel map zijn alle formules nu vaste waarden
voor nu eerst naar mn werk
hoop dat je een oplossing voor me hebt
 
Als je mijn routine VerwijderFormules bekijkt zul je zien dat hij inderdaad alle bladen in het werkboek behandeld.
Pas hem dus zo aan dat hij alleen het huidige blad doet.
 
inmiddels 2 uur verder maar helaas ik kom er niet uit
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan