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.