Opgelost Met VBA een sheet opslaan FileFormat:=51 werkt niet

  • Onderwerp starter Onderwerp starter KeBr
  • Startdatum Startdatum
Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

KeBr

Gebruiker
Lid geworden
25 apr 2016
Berichten
183
Beste,
Onderstaande code werkt prima zolang het bestand op dezelfde drive staat.
Ik heb het bestand nu op de juiste locatie gezet (sharepoint) en dan loopt deze vast op
".SaveAs filename:=path & fname, FileFormat:=51"
Hoe kan ik dit oplossen

Private Sub SaveCopy()

Dim filename
Dim path As String
Dim dt As String

If TimeValue(Now) < TimeValue("12:00:00 PM") Then
meridian = "AM"
Else
meridian = "PM"
End If

path = "C"
dt = Format(Now(), "yyyy-mm-dd hhmm")
fname = "Projectplanning" & dt & meridian

Application.DisplayAlerts = False

Sheet8.Copy
Application.Run "Module2.Clear_ButtonsActiveSheet"
Application.Run "Module2.Break_Links"

With ActiveWorkbook
.SaveAs filename:=path & fname, FileFormat:=51
.Close
End With

Application.DisplayAlerts = True

End Sub
 
Dit is met de functie CODE gedaaan

Code:
Private Sub SaveCopy()

    Dim filename
    Dim path As String
    Dim dt As String
    
    If TimeValue(Now) < TimeValue("12:00:00 PM") Then
        meridian = "AM"
    Else
        meridian = "PM"
    End If
    
    path = "C"
    dt = Format(Now(), "yyyy-mm-dd hhmm")
    fname = "Projectplanning" & dt & meridian
    
    Application.DisplayAlerts = False
    
    Sheet8.Copy
        Application.Run "Module2.Clear_ButtonsActiveSheet"
        Application.Run "Module2.Break_Links"
        
    With ActiveWorkbook
        .SaveAs filename:=path & fname, FileFormat:=51
        .Close
    End With
    
    Application.DisplayAlerts = True
        
End Sub
 
CSS:
MsgBox Format(Time, "hh:mm:ss AM/PM")
 
Bedankt,
Ik heb de regels voor Time nu uitgezet en dit is voor mij goed. nu is het onderstaande geworden:

Code:
Private Sub SaveCopy()

    Dim filename
    Dim path As String
    Dim dt As String
    
    path = "C"
    dt = Format(Now(), "yyyy-mm-dd hhmm")
    fname = "EXPORT " & dt & meridian
    
    Application.DisplayAlerts = False
    
    Sheet8.Copy
        Application.Run "Module2.Clear_ButtonsActiveSheet"
        Application.Run "Module2.Break_Links"
        
    With ActiveWorkbook
        .SaveAs filename:=path & fname, FileFormat:=51
        .Close
    End With
    
    Application.DisplayAlerts = True
        
End Sub
 
Ik zie nog 4 overbodige variabelen.
 
Beste snb,

Ik zie er zo geen 4.
wel ik onderstaande aangepast
Code:
dt = Format(Now(), "yyyy-mm-dd hhmm")

    fname = "EXPORT " & dt & meridian

Naar
   
    dt = Format(Now(), "yyyy-mm-dd")

    fname = "EXPORT " & dt
 
je heb voor de naam van het bestand geen enkele variabele nodig.
 
Beste snb,

Ik snap wat je bedoeld, echter de naam van het tabblad weergeven in de bestandsnaam is wel wenselijk.
"fname" laat ik dus staan.
Ik haal er inderdaad onderstaande nog uit.
dt = Format(Now(), "yyyy-mm-dd")

Bedankt voor al je reacties.
 
die Application.run zijn ook overbodig als het om het verwijderen van VBA-code gaat. het fileformat 51 verwijdert die automatisch.

de enige code die je nodig hebt is:

CSS:
Sub M_voorbeeld

    Sheet8.Copy
    With ActiveWorkbook
        .SaveAs "G:\export" & format(now,"yyyymmdd_hhmmss") & ".xlsx",51
        .Close
    End With
 end sub
 
Beste snb,

Ik heb de Code hierboven geprobeerd. echter krijg ik dan een fout bij het opslaan.
Ook heb in de eerdere code de Application.Run verwijderd. Dan blijven de Comandbuttons gewoon staan.
1712301958548.png
 
je slaat het op als .xlsx maar er zit een macro in je file vandaar de melding.
maak van .xlsx eens .xlsm
 
xlOpenXMLWorkbookMacroEnabled52Open XML Workbook Macro Enabled*.xlsm
 
Dit zorgt ervoor dat de macro's beschikbaar blijven, dat is nu juist niet de bedoeling.
 
CSS:
Sub M_voorbeeld()
    application.displayalerts=false

    Sheet8.Copy
    With ActiveWorkbook
        .SaveAs "G:\export" & format(now,"yyyymmdd_hhmmss") & ".xlsx",51
        .Close
    End With
 end sub

Alle code is nu verwijderd, dus geen enkele 'knop' doet het meer.
Als je die knoppen wil verwijderen zul je toch iets van van die 2 application.run macro's moeten laten zien of gewoon het bestand hier plaatsen.
 
Beste snb,
bedankt voor alle reacties.
Ik laat die 2 application.run macro's staan.
Voor mij werkt het nu prima.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan