Zdravo.
Imam eno vprašanje: običajno zaženem datoteko A, iz nje izberem makro, ki mi pomaga odpreti in urediti datoteko B (ostane odprta oz. trenutno aktivna). Potem bi pa želel iz datoteke A v datoteko B prenesti dodaten modul oz. makro. En del tega bi mogoče zgledal približno tak:
ActiveWorkbook.Name = datotekaB
Function CopyModule(Modul As String, _
datotekaB As VBIDE.VBProject, _
ToVBProject As VBIDE.VBProject, _
OverwriteExisting As Boolean) As Boolean ???
V tem ukazu mi javlja neko napako?! Datoteka A je vedno enaka, datoteka B pa je poljubno izbrana...
Hvala za pomoč.
Lp, Gregor
Kopiranje modula iz ene datoteke v aktivno datoteko
Re: Kopiranje modula iz ene datoteke v aktivno datoteko
z avtomatičnim prenosom modulov oz. makrov iz enega delovnega zvezka v drugega nimam izkušenj, saj je to problematično zaradi varnostnih omejitev. Z vsako različico MS pisarne so varnostne zahteve strožje, zato sem nad tem obupal in vam na žalot ne morem pomagati.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Kopiranje modula iz ene datoteke v aktivno datoteko
Kaj pa zapis v makroju datoteke A, ki bi napisal nov makro v datoteki B (pač enak učinek kot če bi kopiral makroje)?
Re: Kopiranje modula iz ene datoteke v aktivno datoteko
Z varnostnega stališča je stvar enakovredna in kot rečeno sem jaz osebno nad njo obupal - sem se namreč tudi sam srečal s podobnimi idejami a bolj ko sem kopal slabše je postajalo.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Kopiranje modula iz ene datoteke v aktivno datoteko
Pri meni je deloval tak zapis:
Res je, da sem moral omogočiti uporabo vseh makrojev in "zaupati" "VBA project object model" (uporabljam office 2007), ampak na koncu je nekak uspelo
Hvala za odgovore.
Lp, Gregor
Koda: Izberi vse
'kopiranje makroja
Dim FName As String
Dim EName As String
Dim IName As String
EName = "predračun_makro.xls"
IName = ActiveWorkbook.Name
With Workbooks(EName)
FName = .Path & "\code.txt"
.VBProject.VBComponents("Module5").Export FName
End With
Workbooks(IName).VBProject.VBComponents.Import FName
Kill (FName)
Hvala za odgovore.
Lp, Gregor