Avatar billede gider_ikke_mere Nybegynder
15. november 2004 - 11:38 Der er 16 kommentarer og
1 løsning

Ny tekst i sidefod for hver side der udskrives

Jeg har 13 sider i et ark der skal udskrives med en ny tekst i sidefod for hver side. Jeg kan IKKE bruge at teksten for hver side hentes fra en celle.
Avatar billede tobler Nybegynder
15. november 2004 - 11:53 #1
Hvor har du defineret teksten?
Avatar billede gider_ikke_mere Nybegynder
15. november 2004 - 12:18 #2
Teksten skal defineres i VBA-makroen
Avatar billede gider_ikke_mere Nybegynder
15. november 2004 - 12:32 #3
Jeg har indtil nu følgende på plads:
Private Sub CommandButton1_Click()
For I = 1 To (Ark1.HPageBreaks.Count)
    ActiveSheet.PrintOut from:=I, To:=I
With ActiveSheet.PageSetup
        .RightFooter = I 'sætter indtil videre bare sidefod til I
    End With
Next
End Sub

Problemet er:
1. Denne makro giver ingen valg af printer (skal kunne vælges forskelligt alt efter bruger)
2. I stedet for en trykknap ville jeg gerne have det til at ske med Ctrl+P
Avatar billede gider_ikke_mere Nybegynder
15. november 2004 - 12:33 #4
3. Vælger man Adobe distiller, som nogen måske kan finde på, kommer der 13 separate dokumenter ud af det.
Avatar billede gider_ikke_mere Nybegynder
15. november 2004 - 12:38 #5
Når jeg i mit indlæg skriver at teksten ikke kan komme fra en celle, mener jeg blot at jeg ikke kan klare mig med at teksten står i nederste celle på hver sideudskriftsområde.
Avatar billede supertekst Ekspert
16. november 2004 - 09:58 #6
Teksten kan defineres i et array (intern tabel) - eller hentes fra en databasetabel - hvis teksterne er brugerafhængige.
Avatar billede gider_ikke_mere Nybegynder
16. november 2004 - 11:57 #7
Det er de samme tekster for de samme sider hver gang. Der er altid 13 sider. Jeg skal bare have en speciel tekst for hver side til at stå i højre side i sidefoden for hver side.
Avatar billede supertekst Ekspert
16. november 2004 - 12:19 #8
Sub skriv()
Dim I, sideFodTekster(3)      'her er kun afsat 3 i stedet for 13
    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"

    For I = 1 To (Ark1.HPageBreaks.Count)
   
    With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)    'Fordi I starter med 1
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
End Sub
Avatar billede kabbak Professor
16. november 2004 - 12:59 #9
Som supertekst skriver, lav  teksten som vist.

Valg af printer er med her.
2. indspil en lille makro, giv den navnet Skriv og giv den taste trykket Ctrl+ P

Slet koden den skrev og sæt dette ind i stedet.


Dim A As Boolean, I As Integer, sideFodTekster(3) As String      'her er kun afsat 3 i stedet for 13
A = Application.Dialogs(xlDialogPrinterSetup).Show ' til valg af printer
If A = True Then ' hvis du annulerer skrives den ikke ud

    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"
   
    For I = 1 To (Ark1.HPageBreaks.Count)
   
    With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)    'Fordi I starter med 1
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
    End If
Avatar billede gider_ikke_mere Nybegynder
16. november 2004 - 17:18 #10
Jeg har nok endnu engang ikke udtrykt mig klart nok. Når jeg skriver at jeg gerne vil bruge Ctrl+P, mener jeg generelt at jeg gerne vil have handlingen til at ske uanset hvorledes brugeren sætter printet i gang. Hvadenten man bruger det det lille skide ikon som Microsoft har været så (u)venlig at ligge på på værktøjslinien eller om man går i "filer" eller om man bruger Ctrl+P.
Siden selveste Kabbak anbefaler en simpel makro går jeg ud fra at man ikke kan styre printet på en smartere måde.
Jeg forstår simpelt hen ikke at funktionen ikke er implementeret i Excel, det må da være en funktion som mange kunne bruge til udskrivning!
Avatar billede kabbak Professor
16. november 2004 - 21:54 #11
hvis du sætter denne i ThisWorkbook modulet, bliver den altid kaldt ved udskrift.

MEN der er et minus, den bliver også kaldt ved vis udskrift.

Den virker på ALLE ark i mappen, så skal den ikke gøre det, skal det med ind i koden.

det med et ark er sat ind.


Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Ark1" Then ' den gælder nu kun for ark1, ret til din side
Cancel = True
Dim A As Boolean, I As Integer, sideFodTekster(3) As String      'her er kun afsat 3 i stedet for 13
A = Application.Dialogs(xlDialogPrinterSetup).Show ' til valg af printer
If A = True Then ' hvis du annulerer skrives den ikke ud

    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"
   
    For I = 1 To (Ark1.HPageBreaks.Count)
   
    With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)    'Fordi I starter med 1
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
    End If
    End If
End Sub
Avatar billede gider_ikke_mere Nybegynder
17. november 2004 - 11:06 #12
Jeg kan ikke lige se hvorfor, men ActiveSheet.PrintOut from:=I, To:=I giver ingen udskrift selv om I tæller fra 1 til 13.
Vis udskrift virker heller ikke!

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Forside" Then
Cancel = True
Dim A As Boolean, I As Integer, sideFodTekster(12) As String
A = Application.Dialogs(xlDialogPrinterSetup).Show
If A = True Then

    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"
    sideFodTekster(3) = "DDDD"
    sideFodTekster(4) = "EEEE"
    sideFodTekster(5) = "FFFF"
    sideFodTekster(6) = "GGGG"
    sideFodTekster(7) = "HHHH"
    sideFodTekster(8) = "IIII"
    sideFodTekster(9) = "JJJJ"
    sideFodTekster(10) = "KKKK"
    sideFodTekster(11) = "LLLL"
    sideFodTekster(12) = "MMMM"
   
    For I = 1 To (Ark4.HPageBreaks.Count)
        With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
    End If
    End If
   
End Sub
Avatar billede kabbak Professor
17. november 2004 - 11:53 #13
Jeg skrev jo at vis udskrift ikke fungerede, men nu skulle koden virke

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "Forside" Then
Cancel = True
Dim A As Boolean, I As Integer, sideFodTekster(12) As String
A = Application.Dialogs(xlDialogPrinterSetup).Show
If A = True Then
L = Sheets("Forside").HPageBreaks.Count + 1
    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"
    sideFodTekster(3) = "DDDD"
    sideFodTekster(4) = "EEEE"
    sideFodTekster(5) = "FFFF"
    sideFodTekster(6) = "GGGG"
    sideFodTekster(7) = "HHHH"
    sideFodTekster(8) = "IIII"
    sideFodTekster(9) = "JJJJ"
    sideFodTekster(10) = "KKKK"
    sideFodTekster(11) = "LLLL"
    sideFodTekster(12) = "MMMM"
   
    For I = 1 To L
        With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
    End If
    End If
   
End Sub
Avatar billede supertekst Ekspert
17. november 2004 - 12:04 #14
OBS: FØR SIDSTE KOMMENTAR FRA "KABBAK"

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "forside" Then      '<<<<<<<<< FORSIDE
Cancel = True
Dim A As Boolean, I As Integer, sideFodTekster(12) As String
A = Application.Dialogs(xlDialogPrinterSetup).Show
If A = True Then

    sideFodTekster(0) = "AAAA"
    sideFodTekster(1) = "BBBB"
    sideFodTekster(2) = "CCCC"
    sideFodTekster(3) = "DDDD"
    sideFodTekster(4) = "EEEE"
    sideFodTekster(5) = "FFFF"
    sideFodTekster(6) = "GGGG"
    sideFodTekster(7) = "HHHH"
    sideFodTekster(8) = "IIII"
    sideFodTekster(9) = "JJJJ"
    sideFodTekster(10) = "KKKK"
    sideFodTekster(11) = "LLLL"
    sideFodTekster(12) = "MMMM"
   
    Worksheets("ark4").Activate            '<<<< ARK MED DE 13 SIDER

    For I = 1 To ActiveSheet.HPageBreaks.Count
        With ActiveSheet.PageSetup
            .RightFooter = sideFodTekster(I - 1)
        End With
       
        ActiveSheet.PrintOut from:=I, To:=I
    Next
    End If
    End If
   
End Sub
Avatar billede gider_ikke_mere Nybegynder
17. november 2004 - 15:41 #15
KABBAK: Virker stadig ikke. Giver mig igen en dialogbox med: Indstil printer.
Der sker dog ingenting med udskriften.

SUPERTEKST: Virker ligesom en af mine egne forsøg: MMMM bliver skrevet på alle sider. Jeg kunne få mit eget forsøg (fra i går) til at virke ved at flytte Printout op i lykken, men så får man 13 separate udskrifter (problem i Adobe).
Avatar billede gider_ikke_mere Nybegynder
17. november 2004 - 16:12 #16
SUPERTEKST's forslag virker faktisk heller ikke da han havde skrevet "forside" i stedet for "Forside". Derfor sprang den over koden!
Avatar billede gider_ikke_mere Nybegynder
23. november 2004 - 08:35 #17
Udskifter jeg xlDialogPrinter med xlDialogPrint, virker det hele delvis, men jeg får en ny dialog for hver side. I Adobe bliver der dannet 13 separate dokumenter der overskriver hinanden. Jeg lukker da ingen svarer!
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

IT-JOB

Netcompany A/S

Network Engineer

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer