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

VBA opslaan van xlsb naar xlsx

Status
Niet open voor verdere reacties.

peter59

Terugkerende gebruiker
Lid geworden
21 mei 2007
Berichten
1.747
Besturingssysteem
Windows 11
Office versie
Office versie 365
Hallo,

Ik heb een vraagje v.w.b. opslaan van xlsb naar xlsx.
Nu gebruik ik opslaan als PDF.
Ik krijg het maar niet voor elkaar om de betreffende sheet op te slaan als een .xlsx format.
Dus geen PDF.

Code:
Sub GerealiseerdAlsPDF()
    Sheets("Tot Gerealiseerd").Select
                                Blad2.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                            "C:\....\.......\....\....\" _
                                                           & Format(Range("A2"), "yyyymmmdd") & " " & Range("A1")
End Sub
 
Dat kan met iets als dit:
Code:
Sheets("Tot Gerealiseerd").Copy
With ActiveWorkbook
    .SaveAs ThisWorkbook.Path & "\Tot Gerealiseerd.xlsx", 51
    .Close
End With
 
Hallo Edmoor

Ik ben al een klein stapje verder waarvoor dank.
D.m.v. een knopje tracht ik nu 2 sheet te kopiëren en op te slaan.
Maar zoals verwacht, gaat dit fout. Zie oranje tekst in de code.
Voorheen werkte dit wel bij het opslaan als een PDF.
V.w.b. VBA ben ik een absolute leek. Ja, met de macrorecoder kan ik een beetje uit de voeten maar dan hoort het ook op.
Misschien heb jij of iemand anders nog een hint.

Code:
Sub AlarmenPlantsTot()

    Sheets("Tot Plants").Copy
        With ActiveWorkbook
            .SaveAs ThisWorkbook.Path & "\" & Format(Range("A2"), "yyyymmmdd") & " " & Range("A1"), 51
        End With

[COLOR="#008000"]'End Sub

'Sub AlarmenPlantsDetails()[/COLOR]

    [COLOR="#FF8C00"]Sheets("Details Plants").Copy[/COLOR]
        With ActiveWorkbook
            .SaveAs ThisWorkbook.Path & "\" & Format(Range("A2"), "yyyymmmdd") & " " & Range("A1"), 51

      End With

   Sheets("Slicers").Select

End Sub
 
Als je daar een foutmelding op krijgt is het wel zo handig als je er ook bij verteld wat die melding precies is.
 
Edmoor,

Volledig gelijk. Zie afbeelding.
 

Bijlagen

  • Foutmelding.png
    Foutmelding.png
    8,3 KB · Weergaven: 19
Controleer dan de naam van dat blad ("Details Plants") eens goed of plaats dat document hier.
 
Controleer de naam van het werkblad in de code: "Details Plants" bestaat blijkbaar niet.


Vereenvoudig de code:

Code:
activeworkbook.saveas ThisWorkbook.Path & Format(Date, "\\yyyymmdd ") & [A1],51
 
Laatst bewerkt:
Hallo Edmoor en Snb

Vreemd, tabblad "Details Plants" bestaat wel en is ook goed geschreven.
Ik heb nu "Details Plants" in de code vervangen door "Blad4.copy" en wat blijkt? Geen foutmelding meer.

@Snb
Ik ga in de loop van deze dag jouw verkorte versie ook uit proberen.
 
Dan is de naam "Details Plants" toch echt niet goed.
Mijn gok is dat er een spatie achter staat: "Details Plants "
 
Hallo Edmoor en Snb

Het is gelukt. Dank hiervoor.
En ja Edmoor. Er stond i.d.d. een spatie teveel.

@Snb
De code welke in nu gebruik is
Code:
With ActiveWorkbook
        .SaveAs ThisWorkbook.Path & Format([A2], "\\yyyymmdd ") & [A1], 51
    End With

aangezien er in A2 een "vaste" (kwartaal)datum staat.

Nogmaals dank.
 
Dan is dit voldoende:

Code:
ActiveWorkbook.SaveAs ThisWorkbook.Path & Format([A2], "\\yyyymmdd ") & [A1], 51
 
Bedenk wel dat je na afloop van die macro in de .xlsx aan het werk bent en niet meer in de .xlsb.
 
Edmoor, dank je.
Hier was ik al achter gekomen.
Als ik met een macro aan de gang ga, dan doe ik dat altijd met een kopie, aangezien ik geen enkele ervaring heb met hoe het e.e.a. zal uitpakken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan