oceanrace
Gebruiker
- Lid geworden
- 14 mei 2008
- Berichten
- 198
Hallo Forummers,
De volgende code werkt goed, echter bij sommige pc's krijg ik de melding dat er onvoldoende bronnen beschikbaar zijn of excel loopt vast.
Wie kan me helpen of deze code nog eens controleren?
De volgende code werkt goed, echter bij sommige pc's krijg ik de melding dat er onvoldoende bronnen beschikbaar zijn of excel loopt vast.
Wie kan me helpen of deze code nog eens controleren?
Code:
Sub Opslaanzonderformules()
Dim strFileName As Variant, strPath As String
Dim VBProj As VBIDE.VBProject, VBComp As VBIDE.VBComponent, CodeMod As VBIDE.CodeModule
Dim astrLinks As Variant
strFileName = Application.GetSaveAsFilename(InitialFileName:=strPath & [AG2], _
FileFilter:="Excel Files (*.xls), *.xls, Excel 2007 Files (*.xlsm), *.xslm", _
FilterIndex:=1, _
Title:="Opslaan als excel document (alleen werkblad kaart zonder formules)")
If strFileName = False Then
MsgBox "De kaart is niet opgeslagen!", vbInformation + vbOKOnly, "Er is iets misgegaan..."
Else
ActiveSheet.Copy
With ActiveWorkbook
With .Sheets("TK")
.Unprotect
.UsedRange.Value = .UsedRange.Value
Union(.Range(.Cells(65, 1), .Cells(.Rows.Count, .Columns.Count)), _
.Range(.Cells(1, 65), .Cells(65, .Columns.Count))).Clear
ActiveSheet.Cells.ClearComments
ActiveSheet.DrawingObjects.Visible = True
ActiveSheet.DrawingObjects.Delete
.Protect
End With
' Define variable as an Excel link type.
astrLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
' Break the first link in the active workbook.
For i = 1 To UBound(astrLinks)
ActiveWorkbook.BreakLink _
Name:=astrLinks(i), _
Type:=xlLinkTypeExcelLinks
Next i
Set VBProj = .VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
Set CodeMod = VBComp.CodeModule
With CodeMod
.DeleteLines 1, .CountOfLines
End With
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
.SaveAs Filename:=strFileName
End With
A = MsgBox("Wil je de kaart printen? Maak een keuze, de opgeslagen kaart wordt vervolgens afgesloten om terug te gaan naar het origineel. ", vbQuestion + vbYesNo, "Gelukt, de kaart is opgeslagen!")
If A = vbYes Then
Application.Dialogs(xlDialogPrint).Show
End If
ActiveWorkbook.Close Savechanges:=False
End If
End Sub