• 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 Excel | Meerdere tabs selecteren (om pdf te draaien middels knop)

Penning1

Gebruiker
Lid geworden
22 sep 2011
Berichten
9
Beste allen,

Ik heb een excel file met meerdere tabbladen. Hieruit wil ik verschillende tabbladen selecteren om een pdf te draaien. Ik heb dit inmiddels kunnen doen met de volgende code:
Code:
Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & " - " & Range("AI10") & ".pdf"
    Sheets(Array("Update", "Overview", "Blad1")).Select
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand

Echter kan het zijn dat de tabbladen-namen (Achter de Array) ik hier tabbladen wil toevoegen/afhalen. Ik heb middels een selectie tool geregeld, dat ik deze namen kan aan en uitzetten en dus uiteindelijk in een bepaalde cel (nu cel: AC36) deze tekst (verwijzend dus naar de tabbladen die ik wil) zo uit kunnen schrijven.
Nu wil ik dus dat de VBA code wordt gelezen uit deze cel AC36, dat wanneer ik tabbladen aan/uit wil zetten, deze omzet naar pdf.

Schermafbeelding 2024-08-05 173041.png
Ik dacht hiervoor de code: Sheets(Array(Range("AC32".Value))).Select te gebruiken. Maar dan krijg ik een foutmelding (syntaxis...).
Wat doe ik hier verkeerd? Of is er een andere betere manier om selectie tabbladen aan/uit te zetten?

Ik hoor het graag.
Mvg, Dennis
 
Zorg dat de output in AC32 er zo uit ziet

1722882755881.png

Daarna

Code:
Sheets(Split(Range("AC32"), ", ")).Select
 
Beste @AHulpje : Jouw oplossing is dus datgene wat ik heb gedaan en dus niet werkte, zoals in mijn probleemomschrijving beschreven. En wat dus niet werkte. Zit het misschien dan in mijn cel AC32 waarin de tekst niet goed wordt samengevat?

@JEC. Ik heb heb (naar mijns inziens) de output zo eruit laten zien zoals U voorstelde. En dan de VBA code aangepast, maar helaas nog zonder resultaat (foutcode: "subscript valt buiten bereik").

De volledige code die nu werkbaar is:
Code:
Sub Knop511_Klikken()
Dim Bestand As String
    Dim OutApp As Object
    Dim OutMail As Object

    
    Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & " - " & Range("AI10") & ".pdf"
    Sheets(Array("Update", "Overview", "Blad1")).Select
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = Range("Q12").Value
        .CC = Range("W12").Value
        .BCC = Range("AC12").Value
        .Subject = Range("b3").Value
        .Body = Range("Q22").Value
        .Attachments.Add Bestand
        .Display
    End With
    Kill Bestand
End Sub

Ik heb ter volledigheid mijn allenstaande tabblad Update toegevoegd, omdat het volledige bestand te groot is om toe te voegen.Hierin is de code en daarbij de hulpcellen te vinden. Misschien dat dit sneller werkt om hierin een kijkje te nemen?
 

Bijlagen

Probeer het eens zo:
Code:
    Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & " - " & Range("AI10") & ".pdf"
    For Each c In Range("AD25:AD29").Cells
        If c.Value <> "-" Then Sheets(c.Value).Select (False)
    Next
    
    Selection.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand
 
Moet lukken met de split, heb je geen spatie te veel of te weinig voor of na de komma?
 
@JEC.
Is mij niet gelukt met de Split en heb gecontroleerd op spaties. Is het jou wel gelukt?
 
Ja zeker had getest
 
Oeps, je hebt natuurlijk gelijk, hoe durfde ik daaraan te twijfelen!
Toch een trailing space over het hoofd gezien, zo werkt het wel:
Code:
=SPATIES.WISSEN(TEKST.SAMENV(AF25:AF29))
 
Beiden, alvast dank je voor julle reacties.
@JEC. : Ik heb jouw code uit je eerste bericht gekopieerd en geplakt in de VBA code. En daarop kreeg ik foutmelding. Dus zit hierin een spatie teveel/te weinig?
Maar het is mij nu even onduidelijk welke code ik nu kan gebruiken om het te laten werken. Gewoon de split code?
Waarbij er dus 1x spatie na de komma en vóór de trema staat?
 
Beste beiden,
Ik heb 'm werkend nu! Dank jullie voor jullie hulp en input.
Ter volledigheid:
Ik ben even aan de gang gegaan met de uitgebreidere code van AHulpje (bericht 16:57) en deze werkte allereerst nog niet. Maar toen ik Selection.ExportAsFixedFormat _ had omgezet naar ActiveSheet.ExportAsFixedFormat _ liep de uitvoering van de code mooi door.
Nogmaals dank!
 
Terug
Bovenaan Onderaan