Hej folkens
Jeg er helt ny herinde så giv lyd hvis jeg overtræder regler, skrevne som uskrevne.
Jeg har brugt Excel til at lave en digital timeseddel til arbejde, så de ikke længere skal udfyldes i hånden. Indtil nu har det sparet en masse tid, da det er enormt svært at udfylde forkert og videre selv laver diverse beregninger. MEN da timesedlen stadig ikke er fejlfri, er jeg blevet bedt om printe fysiske kopier ud af de månedlige timesedler så vi kan fejltjekke inden lønindberetning.
Jeg skal derfor printe "indsæt månedsark" ud fra 34 forskellige projektmapper.
Derfor lavede jeg et opslag på Reddit, og da løsningen lignede en copy/paste løsning gik jeg ud fra at det ikke ville være svært at få til at virke. https://www.reddit.com/r/excel/comments/dfm9g6/is_it_possible_to_print_a_specific_worksheet_from/ - https://www.reddit.com/r/excel/comments/dfm9g6/is_it_possible_to_print_a_specific_worksheet_from/
Jeg tog fejl og da forfatteren af koden ikke svarer er jeg desværre på bar bund.
Når jeg afspiller koden får jeg Error 400. Når jeg forsøger at ændre i koden får jeg vidt forskellige fejl.
SÅ er der nogen af jer der kan hjælpe mig med at finde hoved og hale i koden?
På forhånd tak!
Funktionskode: Private Function SheetExists(sWSName As String) As Boolean Dim ws As Worksheet On Error Resume Next Set ws = Worksjeets(sWSName) If Not ws Is Nothing Then SheetExists = True End Function
Makro kode: Sub ImportSheet() Dim sImportFile As String, sFile As String, snip As String Dim sThisBk As Workbook Dim vfilename As Variant Application.ScreenUpdating = False Application.DisplayAlerts = False Set sThisBk = ActiveWorkbook FPath = Sheets("TheFiles").Range("B1") & "\" snip = Sheets("TheFiles").Range("B2") For rw = 4 To Cells(Rows.Count, 1).End(xlUp).Row sImportFile = FPath & Sheets("TheFiles").Range("A" & rw) vfilename = Split(sImportFile, "\") sFile = vfilename(UBound(vfilename)) Application.Workbooks.Open Filename:=sImportFile Set wbBk = Workbooks(sFile & Right(ActiveWorkbook.Name, 5)) With wbBk If SheetExists(snip) Then Set wsSht = .Sheets(snip) wsSht.Copy before:=sThisBk.Sheets(1) Sheets(snip).Name = sFile & "-" & snip Else MsgBox "There is no sheet with name " & snip & vbCr & .Name End If wbBk.Close SaveChanges:=False End With Next rw Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
Videre fik jeg dette billede for at illustrere hvordan opsætningen af "printdokumentet" skulle sættes op.
|