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

Opgelost .SaveAs NieuwFact, 51 error

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

DeArie

Gebruiker
Lid geworden
15 jul 2016
Berichten
159
Beste,

Ik gebruik de volgende code om loonstroken te printen en te mailen, nu heeft deze tot op heden altijd goed gelopen alleen ik wilde hem vandaag gebruiken en gaf hij deze error:

Fout 1004 tijdens uitvoering:

Methode SaveAs van Object _ Workbooks is mislukt.

Als ik dan kijk naar wat er is mis gegaan geeft hij deze : .SaveAs NieuwFact, 51 in het geel aan.

Hij zet het bestand wel in :

NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\d-post\Bezorgers\Loonstroken\

maar gaat niet verder met de rest van de code. Voor zover ik weet en kan zien is er niets veranderd dus begrijp niet waarom hij dit nu niet doet.

Hij slaat het op als .xlsx bestand in bovenstaande directory, als ik .xlsx verander in .PDF loopt hij wel door heel de code heen alleen als ik dan het pdf bestand wil openen geeft hij aan dat het bestand beschadigt is.

Hij mailt het wel en die bestanden zijn wel te openen. Weet iemand waar dit aan kan liggen?

Code:
Public Sub Loonstroken()

'zet nummer tabblad in cel G1 en vult bedragen in

Application.ScreenUpdating = False

Dim Naam
Naam = Worksheets(2).Name '(2) is tweede tabblad van de sheet
ActiveSheet.Range("G1") = Mid(Naam, 1, 6)
Range("I40") = Sheets(2).Cells(Rows.Count, 8).End(xlUp).Value
Sheets(Array(1, 2)).Select
        Sheets(1).Activate

With Sheets(1)
NieuwFact = "C:\Users\D-post\OneDrive\Documenten\D-post\d-post\Bezorgers\Loonstroken\" & .Range("G2").Value & " week " & _
 Application.WeekNum(Date, 21) - 4 & " t-m " & Application.WeekNum(Date, 21) - 1 & ".xlsx"
Windows(1).SelectedSheets.Copy
With ActiveWorkbook
    .Sheets(1).UsedRange = .Sheets(1).UsedRange.Value
    .SaveAs NieuwFact, 51
    .Close
    End With
End With

    Worksheets(2).PageSetup.Orientation = xlPortrait
    Worksheets(2).PageSetup.Zoom = False
    Worksheets(2).PageSetup.FitToPagesWide = 1
    Worksheets(2).PageSetup.FitToPagesTall = 99999



For sh = 1 To 2
   Sheets(sh).PrintOut
  
 Next

   Sheets(Array(1, 2)).Select
            
    Dim Bestand As String
    Dim OutApp As Object
    Dim OutMail As Object
    Dim signature As String
    
     Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & " " & Range("G2").Value & ".pdf"
     ActiveSheet.ExportAsFixedFormat _
     Type:=xlTypePDF, _
     Filename:=Bestand
 
  
    Subject = Range("A9") & " van " & Range("G2")
    Body = ""
          


    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .display
        signature = .HTMLBody
        .To = "schipperenraamsdonksveer.0052@mailtobasecone.com"
        .CC = ""
        .BCC = ""
        .HTMLBody = "<Body style='color:black(33,38,227);font-family:calibri;font-size:15'></font></p>" & Body & "<br>" & .HTMLBody
        .Subject = Subject
        .Attachments.Add Bestand
        .Send
    End With
    Kill Bestand
  
  
Application.DisplayAlerts = False
            blad = Worksheets(2).Name
            Sheets(2).Select
                Sheets(2).Delete
Application.DisplayAlerts = True

Sheets(1).Select

Application.Run "PERSONAL.XLSB!loonstroken.loonstroken"

End Sub
 

Bijlagen

Je hebt een bestand zonder code geplaatst.
 
Edmoor, klopt inderdaad heb de code nu toegevoegd.

Ahulpje dat klopt dat doet hij bij mij ook, alleen gaat de code dan niet verder dus hij print hem niet en mailt hem ook niet en gaat ook niet verder naar het volgende tabblad.
 

Bijlagen

Bij mij loopt 'ie zonder enig probleem.
Maar stopt bij Application.Run "PERSONAL.XLSB!loonstroken.loonstroken" omdat ik die niet heb.
 
Dat is apart, bij mij blijft hij op .SaveAs NieuwFact, 51 vastlopen helaas
 
Hoe start je de macro?
 
In het lint heb ik een kopje macro's en een knop loonstroken daar druk ik normaal op en dan gaat hij lopen tot hij klaar is.

Ik zag net dat ik mezelf niet aangemeld had volgens Excel ( dit blijft hij overigens ook telkens aangeven....)
Heb mezelf aangemeld en daarna deed hij 3 loonstroken zoals normaal en vervolgens weer dezelfde error...
 
Geen idee of dat verschil maakt, maar druk eens op de knop Start Macro in dit document:
 

Bijlagen

@edmoor met de knop maakt geen verschil, wel ben ik bezig geweest met een stukje van wat jij veranderd had

Code:
NieuwFact = Environ("userprofile") & "\desktop\Loonstroken\" & .Range("G2").Value & " week " & _
 Application.WeekNum(Date, 21) - 4 & " t-m " & Application.WeekNum(Date, 21) - 1 & ".xlsx"

Dit werkt wel de hele tijd en zoals hij altijd gedaan heeft, zoals ik het nu bekijk is er een soort storing in onedrive dat hij het niet of nauwelijks bijwerkt en daardoor aan gaat geven dat het bestand al bestaat...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan