Jeg har et regneark hvor jeg har indsat sideskift således at der er 13 sider.
Fra og med side 2 skal der på hver side være 2 kommandoknapper. 1 der udskriver den side den står på og 1 der udskriver den side den står på samt alle foregående sider dog ikke side 1.
Hvorledes ser den smarteste macro for disse knapper ud?
Vil lige tilføje at jeg før har brugt følgende til indsættelse af 2 knapper til print af første side og knap til print af begge sider i et ark opdelt i 2 sider.:
Tryk ALT +F11
Vælg insæt modul
kopier disse 2 makroer derind
Public Sub EnSide() ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True
End Sub
Public Sub ToSider() ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _ :=True End Sub
Luk ved at trykke på øverste højre X
Tilbage på regnearket højreklikker du på en menulinie, vælg formular.
Træk en knap fra formularbjælken over på arket, tildel den en af makroen.
Gør det samme for den anden knap.
Jeg kan jo tilrette ovenstående så det kan bruges til et ark med mange sider...Men findes smartere/hurtigere metode?
Du bestemmer selv hvor mange knapper du sætter på dit ark, blot lad alle knapperne henvise til denne makro, som skulle kunne klare alle de print situationer, som du nævner.
Denne makro tager udgangspunkt i den celle som er aktiv, og regner med at det er den side du vil udskrive - evt. plus nogle flere.
Prøv det!!
Public Sub WitchPage() Dim objWS As Worksheet Dim lRow As Long Dim lPage As Long Dim sAnswer
Set objWS = ActiveSheet lPage = 0
' Set lPage til den side, hvor den aktive celle findes For lRow = 1 To ActiveCell.Row If Not (objWS.Rows(lRow).PageBreak = xlPageBreakNone) Then lPage = lPage + 1 End If Next lRow
If lPage > 2 Then
' Udskrift af alle andre sider end side 1 og 2 sAnswer = MsgBox("Du står på side " & lPage & "." & vbCrLf & vbCrLf & _ "Tryk JA for at udskrive side 2 - " & lPage & vbCrLf & vbCrLf & _ "Tryk NEJ for at udskrive side " & lPage & vbCrLf & vbCrLf & _ "ANNULLER udskriver IKKE.", vbExclamation + vbYesNoCancel, "System Print")
Select Case sAnswer Case vbYes ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=lPage, Collate:=True Case vbNo ActiveWindow.SelectedSheets.PrintOut From:=1, To:=lPage, Copies:=lPage, Collate:=True Case vbCancel End Select
Else
' Udskrift af side 1 og 2 If MsgBox("Vil du udskrive side " & lPage & " ?", vbExclamation + vbYesNo, "System Print") = vbYes Then ActiveWindow.SelectedSheets.PrintOut From:=1, To:=lPage, Copies:=lPage, Collate:=True End If
Du skriver, at macroen tager udangspunkt i den celle som er aktiv.
Jeg har indsat en indholdsfortegnelse på side 1 hvorfra der er link til de resterende 12 sider. For at få siden til at blive vist pænt på midten af skærmen har jeg lavet link til celle som befinder sig på siden efter den side som ønskes vist.
Brugeren skal selv indtaste i tabellen. Det er derfor ikke til at vide om bruger vælger at aktivere udskrivningsknap når celle på ønsket side eller celle på siden efter ønsket side er aktiveret.
Så kan du lave en lille sub til hver knap, som kalder den anden med et rækkenummer, som du har angivet i makro'en..... f.eks. således:
Public Sub Page1() WitchPage 1 End Sub
Public Sub Page2() WitchPage 2 End Sub
Public Sub WitchPage(ByVal lPage As Long) Dim sAnswer
If lPage > 2 Then
' Udskrift af alle andre sider end side 1 og 2 sAnswer = MsgBox("Du står på side " & lPage & "." & vbCrLf & vbCrLf & _ "Tryk JA for at udskrive side 2 - " & lPage & vbCrLf & vbCrLf & _ "Tryk NEJ for at udskrive side " & lPage & vbCrLf & vbCrLf & _ "ANNULLER udskriver IKKE.", vbExclamation + vbYesNoCancel, "System Print")
Select Case sAnswer Case vbYes ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=lPage, Collate:=True Case vbNo ActiveWindow.SelectedSheets.PrintOut From:=1, To:=lPage, Copies:=lPage, Collate:=True Case vbCancel End Select
Else
' Udskrift af side 1 og 2 If MsgBox("Vil du udskrive side " & lPage & " ?", vbExclamation + vbYesNo, "System Print") = vbYes Then ActiveWindow.SelectedSheets.PrintOut From:=1, To:=lPage, Copies:=lPage, Collate:=True End If
End If
End Sub
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.