I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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
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.
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.
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
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
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!
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
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
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
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
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).
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!
Synes godt om
Ny brugerNybegynder
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.