Print side | Luk vindue

Dynamisk PDF printer

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4133
Udskrevet den: 30.Apr.2024 kl. 15:27


Emne: Dynamisk PDF printer
Besked fra: Kristian W.
Emne: Dynamisk PDF printer
Posteringsdato: 11.Jan.2020 kl. 00:02
Hej 
Jeg vil gerne lave et PDF print ark hvor jeg kan "afkrydse" hvilke faner i min excel der skal printes og pdf og hvad de skal hedde.

Jeg havde forstillet mig at det skulle hedder noget ligende:
  If Range("A2").Value > 0 Then Sheets("Ark2").Select
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Range("B2").pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
End If

A2 skal altså være større end 0 for at den skal printe Ark1 (dette virker ikke)
B2 skal være navnet på PDF filen (dette virker ikke)

og hvordan får jeg den til at gøre det samme for C2,C3 og Ark3

Håber at i kan hjælpe :) 




Svar:
Besked fra: EXCELGAARD
Posteringsdato: 17.Jan.2020 kl. 20:27
If Range("A2").Value > 0 Then
    Sheets("Ark2").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:="C:\" & Range("B2").Value & ".PDF", _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=True
End If



-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Kristian W.
Posteringsdato: 20.Jan.2020 kl. 22:42
Hej EXCELGAARD

Mange tak for dit svar:
Det virker næsten jeg dog en udfordring med filnavnet som ikke fungere.
Jeg kan få det til at fungere hvis jeg bruger følgende:

Filename:="C:\TEST.pdf", _

Men det er jo ikke meningen, hvad gør jeg galt? 

Jeg kan se at når jeg skriver "Range("B2").Value" referere den til den korrekte celle tekst men tager den ikke med.



Besked fra: EXCELGAARD
Posteringsdato: 20.Jan.2020 kl. 23:20
Jeg skal have lidt flere informationer?

Min kode virker hos mig.

Hvad skal koden gøre?
Hvad er det, koden gør?
Hvad er det, koden ikke gør?

Blot, at skrive "det fungere ikke" er ikke godt nok Smile


-------------
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.


Besked fra: Kristian W.
Posteringsdato: 25.Jan.2020 kl. 21:56
Kan godt forstå at du skal bruge lidt flere informationer.


Jeg forstår heller ikke hvorfor koden ikke virker hos mig, jeg har forsøgt igen i et helt nyt excel mappe med samme resultat. 

Det er ved filnavnet at det går galt. 
Jeg vil gerne have at pdf'en bliver døbet efter hvad der står i celle (B2) 
Men det fungere desværre ikke.

Jeg får fælgende meddelelse:
Run-time error '2147024773 (8007007b)':
Dokumentet er ikke gemt. 

Det er altså denne del af koden som er en udfordringen hos mig:
Filename:= "C:\" & Range("B2").Value & ".pdf"

Koden fungere hvis jeg ændre denne del til 
Filename:= "C:\TEST.pdf"

Men så får jeg desværre ikke det resultat, et dynamisk pdf navn, som jeg ønsker.



Besked fra: Kristian W.
Posteringsdato: 25.Jan.2020 kl. 23:09
Til yderlige info så har jeg fundet ud af at hvis koden ændres til nedenfor, 
så får jeg en fil som hedder TEST.PDF 
altså går den ikke ind og henter "teksten" i celle B2 korrekt. 

If Range("A2").Value > 0 Then
    Sheets("Ark2").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:="C:\" & Range("B2").Value & "TEST.PDF", _
                                    Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=True
End If





Besked fra: SpillOperator
Posteringsdato: 25.Jan.2020 kl. 23:30
Hej,

Hvis jeg har forstået dig rigtigt, så er B2 cellen med filnavnet på Ark1, mens det er Ark2 der skal eksporteres. Er dette korrekt?

Hvis ja, så kan det muligvis være en hjælp eksplicit at kvalificere adresserne i koden - i stedet for at bruge select.

Nedenstående kode virker i hvert fald fint hos mig.

    If Sheets("Ark1").Range("A2").value > 0 Then
        Sheets("Ark2").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            FileName:="C:\Users\xxx\" & Sheets("Ark1").Range("B2").value & ".pdf"
   End If




Print side | Luk vindue