Excel VBA - skriv til .xlt - gemme funktion i underligende mappe
HejsaNu håber jeg, at jeg har oprettet dette opslag det rigtige sted.
Jeg kører stadig med VBA på amatørstadiget, så det er stadigt lidt så som så.
Jeg har muligvis to problemstillinger, som er meget dikteret af infrastruktur.
Jeg har en funktion i et ordinært .xlsm regneark, som giver brugeren (mange brugere mange regneark)mulighed for at indtaste varestamdata hurtigere og med bedre datakvalitet, hvilket er meget godt.
Vigtigt: Funktionen SKAL kunne eksekveres fra en USB-pind, fællesdrev eller personligt desc top. Derfor skal alle filreference kunne køres ved hjælp af en ThisWorkbook.path kode eller lignende. Drevet og alle overliggende mapper vil være ubekendte.
Disse data skal så overføres til en .xlt skabelon, som bruges til at indlæse data ind i firmaets ERP-system. Skabelonen vedligeholdes af en anden afdeling, hvis fokus ligger på at få data ind i systemet ikke datakvalitet, og derfor har jeg IKKE råderet over den del af problemstillingen.
Første problem:
Hvordan får jeg omgået skabelonens automatiske nummerering, så jeg kan overføre data via nedestående model (og der meget ud over dette)?
Workbooks.Open Filename:= _
(ThisWorkbook.Path & "\" & "Basic data" & "\" & "vareoprettelsesskabelon.xlt")
MyWorkbook.Activate
Sheets("AS400").Select
Application.EnableEvents = False
Range("A9:B9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("vareoprettelsesskabelon.xlt").Activate
Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteValues
Jeg kan omgå nummeringen, hvilket jeg helst var fri for ved hjælp af denne funktion, fordi så kan brugeren komme at rette i skabelonen.
Sub Open_template() 'Kan under ingen omstændigheder åbnes fra specifik sti.
Set wbThis = ThisWorkbook
ChDir wbThis.Path
Workbooks.Open Filename:= _
wbThis.Path & "\" & "Basic data" & "\vareoprettelsesskabelon.xlt" _
, Editable:=True
End Sub
Jeg havde tænkt på en workaround ved gemme den som en backup i en underliggende mappe, men her er jeg løbet mod en mur. Nedenstående er kun en ud af mange fiaskoer.
Sub SaveMe()
Dim MyWorkbook As Workbook
Set MyWorkbook = ThisWorkbook
Run "Open_template"
MyWorkbook.Activate
Range("C2").Copy
Windows("vareoprettelsesskabelon.xlt").Activate
Sheets("Ark1").Select
Range("V1").Select 'Indeholder filnavnet
Selection.PasteSpecial Paste:=xlPasteValues
Application.DisplayAlerts = False
ChDir ThisWorkbook.Path & "\Temp"
ThisWorkbook.SaveAs Filename:=Range("V1") & ".xlsx"
End Sub
Så jeg tigger og beder om hjælp til enten så jeg kan flytte data fra min funktion til skabelonen eller til workarounden.