Pozdravljeni.
Prosim za pomoč pri rešitvi problema, ki se mi pokaže pri zagonu makra v Wordu.
Želja je, da se po spajanju dokumentov izdelane priponke samodejno shranijo v PDF obliki v mapo, ki je odprta za posameznega prejemnika. V Excelovi tabeli, je tudi stolpec s povezavami do mape za posametnega prejemnika.
Bing AI mi je za ta namen napisal makro, ki sem ga v Wordu zagnal.
Ob zagonu makra se mi pojavlja napaka ' Compile error: User defined type not defined '. Po Bing AI navodilih sem preveril, če imam pod 'Tools -> References' označeno Microsoft Excel 16.0 Object Library in Microsoft Word 16.0 Object Library. Možnost Microsoft Word 16.0. Object Library ni bila odkljukana, zato sem jo odkljukal in shranil. Napaka se je ponovila zato sem zopet pogledal na isto mesto in Wordova knjižnica ni bila odkljukana čeprav sem prej spremembo shranil. Vezano na to težavo mi je Bing AI ponudil te možnosti za rešitev problema:
1. Odstranite in ponovno dodajte referenco: ( to sem storil, rezultat je bil isti);
2. Preverite, ali je Microsoft Word dejansko nameščen: ( glede na to, da lahko Word odprem in v njem delam, predvidevam, da je dejansko nameščen?)
3. Uporabite “late binding”: ( tudi to sem spremenil po navodilih, pa ni bilo spremembe);
4. Preverite, ali so potrebne posodobitve: ( preveril in posodobil, nobene spremembe).
Scripta, ki mi jo je za potrebe samodejnega shranjevanja v posamezne mape napisal je:
' Sub SaveInvoices()
Dim wd As Word.Application
Dim wdDoc As Word.Document
Dim xl As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim i As Long
Set wd = New Word.Application
Set wdDoc = wd.Documents.Open("02_Račun za tekoči mesec.doc")
Set xl = New Excel.Application
Set xlWb = xl.Workbooks.Open("01_Seznam računov za leto 2024.xlsx")
Set xlWs = xlWb.Sheets("List1")
wd.Visible = True
xl.Visible = True
For i = 2 To xlWs.Cells(xlWs.Rows.Count, "A").End(xlUp).Row
If Not IsEmpty(xlWs.Cells(i, "C").Value) Then
With wdDoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=xlWb.FullName, _
ReadOnly:=True, _
AddToRecentFiles:=False, _
LinkToSource:=True, _
Connection:="Data Source=" & xlWb.FullName & ";Mode=Read", _
SQLStatement:="SELECT * FROM [" & xlWs.Name & "$] WHERE `ID NAROČNIKA` = " & xlWs.Cells(i, "C").Value
.Destination = wdSendToNewDocument
.Execute
End With
wd.ActiveDocument.SaveAs2 FileName:=xlWs.Cells(i, "Z").Value & xlWs.Cells(i, "B").Value & ".pdf", FileFormat:=wdFormatPDF
wd.ActiveDocument.Close False
End If
Next i
wdDoc.Close False
Set wdDoc = Nothing
wd.Quit
Set wd = Nothing
xlWb.Close False
Set xlWb = Nothing
xl.Quit
Set xl = Nothing
End Sub'
Mogoče veste, kako lahko rešim problem ( samo ne mi prosim reči: ' Ja Bing AI vpraši!', ker izgleda, da je tudi pri umetni inteligenci omejitev).
Če pa obstaja še kakšen drugačen način za rešitev samodejnega shranjevanja spojene datoteke v posamezno mapo, bo pa tudi dobrodošla informacija!
Hvala za odgovor!
Viktor
Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Pozdravljeni,
Prosim da pri vprašanjih, kjer vstavljate programsko kodo uporabite peti gumb zgoraj in kodo zaprite med oznaki za kodo:
Zdaj pa k vaši težavi.
Bing vam je pravilno svetoval in res, vse kar morate narediti je da znotraj 'Microsoft Visual basic For Aplications' okna (to je tam kjer vnašate programsko kodo) izberete Tools/References.
Odpre se novo okno, kjer se z miško odpeljite kar precej dol (izbire so sortirane po črkah) in najdite Microsoft Excel 16.0 Object Library ter jo obljukajte, Ostalega ne potrebujete, saj pravite da želite to zaganjati v Wordu. Za zagon makra v word-u je to dovolj!
Bing ne ve kje želite vi to zaganjati in če bi to zaganjali v PowerPoint-u, potem pa bi morali obkljukati tako Excel, kot Word. S tem ste se prebili preko vrstic
in
To je to - Vendar, da se razumeva - jaz ne trdim da makro deluje pravilno kaj imate vi zapisano v datotekah '02_Račun za tekoči mesec.doc' in '01_Seznam računov za leto 2024.xlsx' ne vem
Torej od trenutka ko v Wordu odkljukate Microsoft Excel 16.0 Object Library bo makro shemantično deloval - vsebinsko pa seveda ne vem!
Prosim da pri vprašanjih, kjer vstavljate programsko kodo uporabite peti gumb zgoraj in kodo zaprite med oznaki za kodo:
Koda: Izberi vse
S tem je potem programsko kodo lažje brati
saj se upoštevajo prelomi vrstic
in vse črke so enako široke.
Bing vam je pravilno svetoval in res, vse kar morate narediti je da znotraj 'Microsoft Visual basic For Aplications' okna (to je tam kjer vnašate programsko kodo) izberete Tools/References.
Odpre se novo okno, kjer se z miško odpeljite kar precej dol (izbire so sortirane po črkah) in najdite Microsoft Excel 16.0 Object Library ter jo obljukajte, Ostalega ne potrebujete, saj pravite da želite to zaganjati v Wordu. Za zagon makra v word-u je to dovolj!
Bing ne ve kje želite vi to zaganjati in če bi to zaganjali v PowerPoint-u, potem pa bi morali obkljukati tako Excel, kot Word. S tem ste se prebili preko vrstic
Koda: Izberi vse
Dim wd As Word.Application
Koda: Izberi vse
Dim xl As Excel.Application
Torej od trenutka ko v Wordu odkljukate Microsoft Excel 16.0 Object Library bo makro shemantično deloval - vsebinsko pa seveda ne vem!
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Hvala za hiter odgovor in napotek za vnos kode!
Napako mi javlja kljub temu, da imam Microsoft Excel 16.0 Object Library odkljukano.
Ampak, če sedaj zadevo pravilno razumem, bi morala biti v kodi označena tudi stolpca v Excelu, ki določata po kakšnem ključu se prenos spojenih dokumentov izvaja. Pa v kodi ne vidim nazivov obeh stolpcev. V tabeli imam stolpec z definirano potjo do posamezne mape ' POT DO MAPE' , kamor bi se moral pdf dokument prenesti, pa ga v sami kodi ni. Je mogoče tudi v tem težava?
Napako mi javlja kljub temu, da imam Microsoft Excel 16.0 Object Library odkljukano.
Ampak, če sedaj zadevo pravilno razumem, bi morala biti v kodi označena tudi stolpca v Excelu, ki določata po kakšnem ključu se prenos spojenih dokumentov izvaja. Pa v kodi ne vidim nazivov obeh stolpcev. V tabeli imam stolpec z definirano potjo do posamezne mape ' POT DO MAPE' , kamor bi se moral pdf dokument prenesti, pa ga v sami kodi ni. Je mogoče tudi v tem težava?
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Pozdravljeni,
Da, nisem se želel spuščati v to, da vam ne uničim pričakovanj, vendar ta makro ne bo naredil tistega, kar ste vi opisovali na začetku.
Saj orodja so zelo uporabna in jih tudi sam uporabljam, vendar pa so zaenkrat vseeno samo pomočniki in je še vedno potrebno dobro vedeti kaj počnemo.
Da, nisem se želel spuščati v to, da vam ne uničim pričakovanj, vendar ta makro ne bo naredil tistega, kar ste vi opisovali na začetku.
Saj orodja so zelo uporabna in jih tudi sam uporabljam, vendar pa so zaenkrat vseeno samo pomočniki in je še vedno potrebno dobro vedeti kaj počnemo.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Pošteno.
Imate mogoče kakšen nasvet glede literature, ki bi nekomu, ki ni izobražen informatik, razumljivo razložila VBA pisanje kod, po možnosti v slovenščini?
Imate mogoče kakšen nasvet glede literature, ki bi nekomu, ki ni izobražen informatik, razumljivo razložila VBA pisanje kod, po možnosti v slovenščini?
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Predlagam vam, da si - za začetek - v knjižnici izposodite mojo knjigo 'Visual basic za Aplikacije'
Je v Slovenščini in je namenjena "ne-programerjem". Dala vam bo dobre osnove, vendar od tod dalje pa literature v Slovenščini ne bo več
Je v Slovenščini in je namenjena "ne-programerjem". Dala vam bo dobre osnove, vendar od tod dalje pa literature v Slovenščini ne bo več
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Že sam hitri opis na začetku posredovanega linka, da ' je knjiga o usodnih strasteh, knjiga o srečni ženi, katere svet se naenkrat zruši.' obeta ! A se da to knjigo kje kupiti? Ker iščem po netu za možnost nakupa, pa knjige ne najdem!
Re: Makro za samodejno shranjevanje spojenih dokumentov v posamezno mapo
Oh ne, to je že zelo "stara" knjiga in že dolgo ni več v prodaji oz je razprodana.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator