Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketVBA funktion og makro giver fejlmeddelse

 Besvar Besvar
Forfatter
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Direkte link til dette indlæg Emne: VBA funktion og makro giver fejlmeddelse
    Sendt: 29.Okt.2019 kl. 20:00
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.




Til top



Til top
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 05.Nov.2019 kl. 19:44
Hej folkens

Jeg har ENDELIG løst problemet.
Funktionskoden skal indsættes i samtlige ark som man vil printe.
Disse skal selvfølgelig være gemt som excel med aktive makroer

Når dette er gjort laves seperat excel dok. med opstilling og formatering som beskrevet ovenfor.
Det er vigtigt at der ikke er "." eller ":" i filnavnene eller placering, da de ikke vil kunne hentes ind.

Kør PrintSheet makroen for hele "printerdokumentet", og så skulle resten være en leg.




Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 29.Okt.2019 kl. 20:27
Jeg tror ikke jeg kan hjælpe.

Men du får måske en bedre hjælp, hvis uploader din fil.

Følg vedledningen på upload i øverste venstre hjørne af denne side
Til top
Bjarnehansen Se dropdown
Platin bruger
Platin bruger
Avatar

Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5475
Direkte link til dette indlæg Sendt: 29.Okt.2019 kl. 21:20
Jeg tror vi må se dit ark forat kunne se hvad der sker i det....
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
Til top
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Direkte link til dette indlæg Sendt: 29.Okt.2019 kl. 22:13
uploader arket i morgen. 
Tak for de hurtige svar.
Excel Rookie
Til top
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Direkte link til dette indlæg Sendt: 30.Okt.2019 kl. 10:55
uploads/2431/Mappe_2019-10-30_10-52-02.xlsx

Her har i det arket, med samme opstilling som foreslået på Reddit, så det passer til koden.

Kan det være at jeg skal gemme funktionskoden og makroen i hver sit makro modul?
Excel Rookie
Til top
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Direkte link til dette indlæg Sendt: 30.Okt.2019 kl. 10:58
Her er tekstforklaringen af koden, fra Reddit.

Citér The function and macro are below. The hardest part for you would be inserting a new sheet in your workbook as your file handler. The way it works is starting at row 4, excel will process the file name, open the workbook that you specified, and pull the desired sheet that you named. Once you have the initial setup sheet completed, add the coding and finally a button to activate it.

Here is a screenshot of the layout and tabs after import. Very simple but easy to follow along. You do not need to include the file extension in the workbook name. That is handled in the coding. After the sheet is copied over, it gets renamed with the workbook name and the sheet name so you can easily distinguish what sheet is what.
Excel Rookie
Til top
Akh Se dropdown
Bronze bruger
Bronze bruger


Medlem: 28.Mar.2019
Land: Danmark
Status: Offline
Point: 20
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 05.Nov.2019 kl. 19:44
Hej folkens

Jeg har ENDELIG løst problemet.
Funktionskoden skal indsættes i samtlige ark som man vil printe.
Disse skal selvfølgelig være gemt som excel med aktive makroer

Når dette er gjort laves seperat excel dok. med opstilling og formatering som beskrevet ovenfor.
Det er vigtigt at der ikke er "." eller ":" i filnavnene eller placering, da de ikke vil kunne hentes ind.

Kør PrintSheet makroen for hele "printerdokumentet", og så skulle resten være en leg.




Excel Rookie
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk