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

Excel workbook opslaan als xlsm in dezelfde dir als pdf

Status
Niet open voor verdere reacties.

FvdF

Gebruiker
Lid geworden
2 dec 2012
Berichten
19
Beste forumlezers,

Ik heb een vba code waar ik mijn excel sheet mee opsla als pdf. Deze macro regelt ook de directory op de desktop zodat het altijd op de desktop wordt opgeslagen in een map "Factuur-2019". Dit gaat prima en wil ik ook zo houden. Nu wil ik dit excel workbook als geheel ook nog opgeslagen hebben als "xlsm" file (vanwege de macro's) op dezelfde plek als waar de pdf's worden opgeslagen (desktop\Factuur-2019).
Ik heb al diverse pogingen gedaan maar mijn vba kennis is nihil, ik doe veel knip & plak van uit internet, dus ik hoop dat iemand mij hiermee kan helpen.

Onderstaande code werkt voor het pdf maken maar nog niet voor xlsm. Ik weet dat het probleem zit in het blauwe gedeelte maar krijg het niet opgelost. De drie sheets die bewaard moeten worden heten "Factuur", "Relaties" en "Invoer".

Mvgr,
FvdF


Code:
[I]Sub SaveAsXLSM()

    Dim FolderPath As String
    Dim Fname As String
    Dim ws As Worksheet
    Fname = Range("C13") & "_" & Range("B3")
    
    FolderPath = Application.ActiveWorkbook.Path
            
    If Right(FolderPath, 1) <> "/" Then
        FolderPath = FolderPath & "/"
    End If
        
    Dim jaar As Integer
        jaar = Sheets("Invoer").Range("C5").Value

    FolderPath = FolderPath & "Facturen-" & jaar
        
    If Dir(FolderPath, vbDirectory) = vbNullString Then
        MkDir FolderPath
    End If
        
    i = 1
    
    If isEmpty(Range("C13")) Then
        xlsmname = "Factuur"
    Else
        xlsmname = Range("C13") & "_" & Range("B3")
    End If
        
    If Dir(FolderPath & "/" & xlsmname & ".xlsm") <> "" Then
        Do While Dir(FolderPath & "/" & xlsmname & ".xlsm") <> ""
                
    If isEmpty(Range("C13")) Then
        xlsmname = "Factuur " & " (" & i & ")"
    Else
        xlsmname = Range("C13") & "_" & Range("B3") & " (" & i & ")"
    End If
                
    i = i + 1
        
    If i = 100 Then
        Exit Do
    End If
        Loop
    End If
        
    Sheets(Array("Factuur", "Relaties", "Invoer")).Copy
    For Each ws In ActiveWorkbook.Worksheets
        With ws.UsedRange
    End With
        Next ws
    With ActiveWorkbook
        
[COLOR="#0000FF"]    ActiveSheet.Range("B2:G54").ExportAsFixedFormat Type:=xlTypexlsm, FileName:=FolderPath & "/" & xlsmname & ".xlsm", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True[/COLOR]
            
    End With
           
    Exit Sub
 
End Sub[/I]
 
Laatst bewerkt:
@FvdF

Zet svp VBA-code in je bericht tusen code tags.
 
Sorry voor het niet juist aanleveren, heb het nu aangepast :D
 
Zo te zien is het voor een Mac.

Ik ga niet de gehele code doorlopen.
Om je op gang te helpen.

Code:
activeworkbook.saveas [I][COLOR=#0000FF]FolderPath & "/[/COLOR][/I]" & [I][COLOR=#0000FF]xlsmname &[/COLOR][/I] ".xlsm", 52
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan