Avatar billede Nervatos Seniormester
15. maj 2019 - 22:04 Der er 8 kommentarer og
1 løsning

VBA PDF

Hej med Jer

Jeg har lavet et PDF system, som virker til dels. Dog vil den ikke vende siden korrekt, det har jeg så fået løst med dette:

    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintArea = "A:L"
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With
    Application.PrintCommunication = True

Når den så har kørt scriptet igennem, så er mit excel langsom reagerende. Det vil sige, at når jeg trykker rundt på mit ark, så er det ligesom om der er et delay på.
Lukker jeg excel helt ned og op igen, så kører alt 100% og uden delay.

Har forsøgt at tilføje dette:
    With Application
        .DisplayAlerts = False
        .EnableEvents = False
        .ScreenUpdating = False
        .Calculation = xlCalculationManual
    End With

I starten af scriptet og dette i slutningen:

    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .EnableEvents = True
        .DisplayAlerts = True
    End With

Dog uden held. Nogen som kan forklare mig, hvorfor det bliver langsomt?
Avatar billede Jan Hansen Ekspert
16. maj 2019 - 06:32 #1
prøv


    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintArea = Range("A1";Range("A1").Offset(10000,0).End(Xlup).Offset(0,12))
        .FitToPagesWide = 1
        .FitToPagesTall = 0
    End With
    Application.PrintCommunication = True

ej testet

Jan
Avatar billede Dan Elgaard Ekspert
16. maj 2019 - 10:54 #2
Når du har overført de nye indstillinger til printeren med:

Application.PrintCommunication = True

...skal du huske, at fortælle Excel, at den ikke længere skal bruge tid på at kommunikerer med printeren, med

Application.PrintCommunication = False

Da Excel samtidig sætte .DisplayPageBreaks til 'True', hver gang man kommunikerer med printeren, skal man også huske, at sætte dette til 'False' igen.

Din fulde kode skal derfor se således ud:

Application.PrintCommunication = False
With ActiveSheet.PageSetup
    .PrintArea = "A:L"
    .FitToPagesWide = 1
    .FitToPagesTall = 0
End With
Application.PrintCommunication = True
Application.PrintCommunication = False
ActiveSheet.DisplayPageBreaks = False

Ja, jeg ved det: Det virker lidt som dobbelt arbejde/kodning, men Excel's evner til, at kommunikerer med en printer har alle dage været noget 'hø'!
Avatar billede Nervatos Seniormester
16. maj 2019 - 11:37 #3
Hej Dan

Nu kan jeg da bevæge tingene igen uden problemer, dog virker mine combo boxe ikke efter den er kørt. Hvad kan årsagen til det være?
Foreløbig tak for hjælpen :)
Avatar billede Dan Elgaard Ekspert
16. maj 2019 - 14:11 #4
Combobokse???
Avatar billede Dan Elgaard Ekspert
16. maj 2019 - 14:36 #6
Ja, jeg ved godt, hvad en Combobox er :_)

Men, dit oprindelig spørgsmål nævner intet om Comboboxe, og du skriver intet om, hvilke type Comboboxe, der driller, og, hvad de gør eller ikke gør.

Du skriver blot, at du har nogle Comboboxe, der driller - og, det er ikke meget, at gå ud fra :-)

Hvordan 'driller'???
Avatar billede Nervatos Seniormester
16. maj 2019 - 15:05 #7
Arh ja selvfølgelig, beklager.

Inden jeg sender den til print, så virker comboboxene. Den er listet med mine varer, således jeg blot skriver noget af varenavnet. Når jeg kører i forhold til udskrift, så virker de ikke mere. Jeg kan ikke få dem frem igen, så den 'forsvinder'. Dvs., at når jeg trykker på B2 som jeg plejer, så står jeg blot i en 'tom' celle i stedet for.

Giver det bedre mening nu? :)
Avatar billede Dan Elgaard Ekspert
16. maj 2019 - 15:18 #8
Hmmm....

Det virker underligt - for min kode skulle ikke indvirke på dette.

Kører du kun og alene min kode, eller er der andet kode, der også kører?
Avatar billede Nervatos Seniormester
16. maj 2019 - 16:02 #9
Der er en kode til at lave en PDF fil, men det hele virkede inden jeg tilføjede dit ekstra udstyr. Derfor jeg ikke helt forstår det.
Kan man lave en tjekker for, om siden er landscape og hvis ikke så skal det gøres? For så må man kunne fikse det på den anden måde i stedet for.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester