Jeg har prøvet at koge det sammen til en makro, det laver et modul, det er der makroer normalt er.
Du skal lige tilføje en reference, for at det virker.
Public Sub Flytmakro()
Dim Code, NextLine As Integer, SH As Variant, ModulNavn As String, MinWorkbook As String
ModulNavn = "MitModul" ' ret til det navn du vil bruge
MinWorkbook = "Bestilling.xls" ' ret til det navn du vil bruge
' fundet på nettet, det kan lave et modul
Dim VBP As VBProject
Dim VBC As VBComponent
Dim VBMod As CodeModule
' -----------------------------------------------------------
' Coded by Shasur for
http://vbadud.blogspot.com 'This program will need reference to Microsoft Visual Basic for Extensibility Library
' gøres i Tools References, fin det og sæt flueben i firkanten, tryk så OK
' -----------------------------------------------------------
Windows(MinWorkbook).Activate
Set VBP = ActiveWorkbook.VBProject
Set VBC = VBP.VBComponents.Add(vbext_ct_StdModule)
VBC.Name = ModulNavn
' slut med det fra nettet
Code = "Sub FilterOgUdskriv" & vbCrLf
Code = Code & " Dim SH As Variant, I as integer" & vbCrLf
Code = Code & " SH = Array(""Søndag"", ""Mandag"", ""Tirsdag"", ""Onsdag"", ""Torsdag"", ""Fredag"", ""Lørdag"")" & vbCrLf
Code = Code & " For I = 0 To UBound(SH)" & vbCrLf
Code = Code & " Sheets(SH(i)).select" & vbCrLf
Code = Code & " Range(""A1:I1"").Select" & vbCrLf
Code = Code & " Selection.AutoFilter" & vbCrLf
Code = Code & " Selection.AutoFilter Field:=1, Criteria1:= ""<>""" & vbCrLf
Code = Code & " ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True" & vbCrLf
Code = Code & " Selection.AutoFilter" & vbCrLf
Code = Code & " Next" & vbCrLf
Code = Code & " Sheets(""Bestillinger"").Select" & vbCrLf
Code = Code & " End Sub" & vbCrLf
With ActiveWorkbook.VBProject. _
VBComponents(ModulNavn).CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
' laver knap og tilknytter makro
' [B6].Left er det samme som Range("B6").Left
Sheets("Print").Activate
ActiveSheet.Buttons.Add([B6].Left, [B6].Top, [B6].Width, [B6].Height).Select
Selection.Characters.Text = "Udskriv"
Selection.OnAction = MinWorkbook & "!FilterOgUdskriv"
End Sub