Kopiranje modula iz ene datoteke v aktivno datoteko

Pomoč pri izdelavi makrov
Odgovori
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Kopiranje modula iz ene datoteke v aktivno datoteko

Odgovor Napisal/-a sonofagun »

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
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje modula iz ene datoteke v aktivno datoteko

Odgovor Napisal/-a admin »

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
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Kopiranje modula iz ene datoteke v aktivno datoteko

Odgovor Napisal/-a sonofagun »

Kaj pa zapis v makroju datoteke A, ki bi napisal nov makro v datoteki B (pač enak učinek kot če bi kopiral makroje)?
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Kopiranje modula iz ene datoteke v aktivno datoteko

Odgovor Napisal/-a admin »

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
sonofagun
Prispevkov: 119
Pridružen: Če Mar 26, 2009 11:05 am

Re: Kopiranje modula iz ene datoteke v aktivno datoteko

Odgovor Napisal/-a sonofagun »

Pri meni je deloval tak zapis:

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)
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
Odgovori