Avatar billede dane022 Seniormester
13. juni 2012 - 15:40 Der er 12 kommentarer og
1 løsning

Problemer med udskrift

Jeg har problemer med nedenstående kode:

If MsgBox("Er den nyansatte it-bruger og skal oprettes i it-systemet?", vbYesNo + vbQuestion) = vbYes Then
    Application.EnableEvents = False
    Worksheets("IT").Visible = True
    Worksheets("IT").Select
    If ActiveSheet.Name = "Ansættelsesbrev" Then
    If Range("ekstraordinær_ansættelse") = "Løntilskud (jobtræning)" Or Range("ekstraordinær_ansættelse") = "Løntilskud (kontanthjælp)" Then
    GoTo slut
    End If
    If Sheets("ansættelsesbrev").Range("timeløn") = "x" And Range("valg_af_tidsbegrænset_ansættelse") = "Tilkaldevikar" Then
    Sheets("forhandlingsreferat").PrintOut Copies:=1, Collate:=True
    Sheets("Tilkaldevikar").Visible = True
    Sheets("tilkaldevikar").PrintOut Copies:=1, Collate:=True
    Sheets("Tilkaldevikar").Visible = False
    GoTo slut
    End If
    Sheets("forhandlingsreferat").PrintOut Copies:=1, Collate:=True
    GoTo slut
End If
End If

Msgbox spørgsmålet skal altid komme, men hvis activesheet = Ansættelsesbrev skal der også udskrives andre sheets afhængigt af de andre betingelser.

Problemerne:
1) Når man vælger ja, udskriver den ikke "Ansættelsesbrev", men istedet "IT" og kun det ark
2) Når udskrivningen er færdig, får man vist arket "IT", men når man markerer cellerne står man stadig i ansættelsesbrevet (ved godt det lyder underligt), men det er på samme måde som hvis man har valgt flere ark samtidig.

Er der en smartere måde at gøre det her på ?
Avatar billede store-morten Ekspert
13. juni 2012 - 20:53 #1
Mon ikke det er denne linie:

    Worksheets("IT").Select
    If ActiveSheet.Name = "Ansættelsesbrev" Then

Spille ikke sammen? Da ActiveSheet.Name altid vil være "IT"
Avatar billede dane022 Seniormester
13. juni 2012 - 21:29 #2
Det kan du have en pointe i, jeg er slet ikke et geni til det her, men jeg kan godt se at der er nogle modsætninger.
Hvordan skal den så skrues sammen, hvis ansættelsesbrevet skal udskrives og bagefter skal IT vælges ?
Avatar billede store-morten Ekspert
13. juni 2012 - 22:10 #3
Sub test()

If MsgBox("Er den nyansatte it-bruger og skal oprettes i it-systemet?", vbYesNo + vbQuestion) = vbYes Then
    Application.EnableEvents = False
   
'IT vises
    Worksheets("IT").Visible = True
   
'Denne Linie er slettet

'Hvis "Ansættelsesbrev" ikke er aktiv (valgt) ingen ting?
    If ActiveSheet.Name = "Ansættelsesbrev" Then
   
'Hvis celle "ekstraordinær_ansættelse" er = (jobtræning) eller (kontanthjælp) gås til slut
    If Range("ekstraordinær_ansættelse") = "Løntilskud (jobtræning)" Or Range("ekstraordinær_ansættelse") = "Løntilskud (kontanthjælp)" Then
GoTo slut
    End If
   
'Hvis celle "timeløn" er = x og "valg_af_tidsbegrænset_ansættelse" er = "Tilkaldevikar" Udskrives 1 og 2
'Hvis ikke udskrives 3
    If Sheets("ansættelsesbrev").Range("timeløn") = "x" And Range("valg_af_tidsbegrænset_ansættelse") = "Tilkaldevikar" Then
'1
'forhandlingsreferat udskrives
    Sheets("forhandlingsreferat").PrintOut Copies:=1, Collate:=True
'Tilkaldevikar vises
    Sheets("Tilkaldevikar").Visible = True
'2
'Tilkaldevikar udskrives
    Sheets("tilkaldevikar").PrintOut Copies:=1, Collate:=True
'Tilkaldevikar skjules
    Sheets("Tilkaldevikar").Visible = False
'It vælges
    Worksheets("IT").Select
GoTo slut
    End If
'3
'forhandlingsreferat udskrives
    Sheets("forhandlingsreferat").PrintOut Copies:=1, Collate:=True
'It vælges
    Worksheets("IT").Select
    GoTo slut
   
slut:
End If
End If
End Sub
Avatar billede dane022 Seniormester
13. juni 2012 - 22:44 #4
Det giver stadig det samme problem med at det er "forhandlingsreferat" og "IT" der udskrives, hvor det bør være ansættelsesbrev istedet for IT. Den underlige fejl med at det er "IT" der vises efter koden er kørt, men man bevæger sig i cellerne på ansættelsesbrevet, er der også stadig.

Det skal siges at jeg har lagt det ind i thisworkbook fremfor en makro. Den aktiveres ved udskriv, men det gør vel ingen forskel ?
Avatar billede dane022 Seniormester
13. juni 2012 - 22:47 #5
Uddybning: Det giver stadig det samme problem med at det er "forhandlingsreferat" og "IT" der udskrives, hvor det bør være ansættelsesbrev istedet for IT = betingelse 3
Avatar billede store-morten Ekspert
13. juni 2012 - 22:50 #6
Er det muligt at få en kopi på E-mail?

Der er ikke noget i overstående koden der udskriver "IT" ?
Avatar billede dane022 Seniormester
14. juni 2012 - 17:46 #7
Jeg har sendt den til dig nu
Avatar billede store-morten Ekspert
14. juni 2012 - 19:23 #8
Prøv at flytte
Private Sub Workbook_beforePrint(Cancel As Boolean)

Til Module1 og omdøb til
Sub Udkriv()

Når den aktiveres ved udskriv, udskrives det sidste aktive ark, altså "IT"
Avatar billede dane022 Seniormester
14. juni 2012 - 20:46 #9
Det er prøvet, men den aktiveres slet ikke ved udskriv. Det er heller ikke IT der skal udskrives. I betingelse 3 er det ansættelsesbrev = active.sheets + forhandlingsreferat der skal udskrives
Avatar billede store-morten Ekspert
14. juni 2012 - 21:47 #10
Nej, den aktiveres ikke ved udskriv.
Fordi når den aktiveres ved udskriv, udskrives det sidste aktive ark, altså "IT"

Derfor selvstændig makro.
Når du har flyttet til module1 og omdøbt.
Tryk alt+F8 Vælg koden (Udkriv) og tryk Afspil.

Når og hvis det virker, kan du evt. tildele genvejs tast eller lægge koden på en knap.
Avatar billede store-morten Ekspert
14. juni 2012 - 22:05 #11
Har sendt E-mail retur med eks.
Avatar billede dane022 Seniormester
17. juni 2012 - 23:26 #12
Jeg endte med at kassere forslagene. Løsningen med at trykke på genvejstaster eller en kommandoknap, egner sig ikke til løsningen. Istedet har jeg set i øjnene at dette ikke kommer til at virke ved udskriv, så jeg har måttet udtænke en anden løsning.

Du er velkommen til at få pointene hvis du smider et svar.
Avatar billede store-morten Ekspert
18. juni 2012 - 23:20 #13
Oki...
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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