NAPAKA PRI IZVRŠEVANJU MAKRA
NAPAKA PRI IZVRŠEVANJU MAKRA
Pozdravljeni, da razložim moj problem:
v excelu imam narejeno razpredelnico katero s pomočjo spojevanja spojim na wordovem dokumentu potrebne podatke.Navedeno spojevanje sem v wordu s pomočjo ustvarjenega makra poenostavil, ter se tako ob zagonu Wordovega dokumenta avtomatično izvrši makro ki spoji dokument. vendat tukaj pa nastopi problem. Če poskušam v excelu, kjer imam razpredelnico odpreti wordov dokument preko hyper povezave, mi napiše error in se sklicuje na napako, da ni odprtega aktivnega dokumenta (predvidevam da se dovolj hitro ne odpre dokument in se avtomatični makro ne izvede), če pa samostojno odprem wordov dokument pa mi izvede makro postopek normalno in zadevo spelje do konca, in ne navede nobenega errora? kateri faktorji bi lahko vplivali na nedelovanje?
hvala za odgovor
v excelu imam narejeno razpredelnico katero s pomočjo spojevanja spojim na wordovem dokumentu potrebne podatke.Navedeno spojevanje sem v wordu s pomočjo ustvarjenega makra poenostavil, ter se tako ob zagonu Wordovega dokumenta avtomatično izvrši makro ki spoji dokument. vendat tukaj pa nastopi problem. Če poskušam v excelu, kjer imam razpredelnico odpreti wordov dokument preko hyper povezave, mi napiše error in se sklicuje na napako, da ni odprtega aktivnega dokumenta (predvidevam da se dovolj hitro ne odpre dokument in se avtomatični makro ne izvede), če pa samostojno odprem wordov dokument pa mi izvede makro postopek normalno in zadevo spelje do konca, in ne navede nobenega errora? kateri faktorji bi lahko vplivali na nedelovanje?
hvala za odgovor
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Pomislil sem tudi na to da mogoče obstaja kakšna možnost, da vstavim kodo da bi ignorilalo navedeno error napako in bi nadaljevalo s procesom?? ostalo mi ne pade na pamet...
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Niste napisali kakšno napako točno makro javi. A iz vašega siceršnjega opisa sklepam, da želite makro pognati iz odprte Excelove datoteke, na katero se skljicuje tudi sam makro. Kot pravite pa makro spaja dokumente, kar pomeni da tudi makro želi odpreti to isto datoteko v kateri se nahajate in to mu seveda ne more uspeti, saj imate datoteko odprto Vi!
Sklepam torej, da je problem v dejstvu, da imate vi odprto datoteko, ki jo sicer želi odpreti tudi makro in zato javi napako.
Sklepam torej, da je problem v dejstvu, da imate vi odprto datoteko, ki jo sicer želi odpreti tudi makro in zato javi napako.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Da poskušam bolje razložiti.
V excelu imam list 1 in list 2. V listu ena imam narejeno hiperpovezavo do wordovega dokumenta. V listu 2 pa imam napisane podatke, katere nato s pomočjo spajanja dokumentov wordov dokument vstavi v napisano besedilo. Ker sem hotel, da se zadeva izvede avtomatično, sem si ustvaril makro, ki ob odprtju wordovega dokumenta izvede oz. sproži postopek makra, kateri spoji podatke z dokumentom. Zadeva deluje če imam odprt excel in nato še samostojno odprem wordov dokument, kateri izvede celotni postopek makra. Zatakne se pa ko hočem preko lista 1 preko hiper povezave odpreti wordov dokument, pa napiše Microsoft Visual Basic run-time error "4248" z razlago Tega ukaza ni na voljo, ker ni odprtih dokumentov.
Makro ki je napisan takole:
pa napiše oz se rumeno obarva pri naslednji alineji
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI .xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OL" _
, SQLStatement:="SELECT * FROM `__1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
Pomislil sem tudi na to, da navedeni makro poskuša z ukazom odpreti že odprt dokument in mogoče je napaka v tem, in mogoče obstaja samo kakšna finta oz. manjša sprememba makrota, zato se obračam na vas, ker upam da mi boste lahko pomogali!
V excelu imam list 1 in list 2. V listu ena imam narejeno hiperpovezavo do wordovega dokumenta. V listu 2 pa imam napisane podatke, katere nato s pomočjo spajanja dokumentov wordov dokument vstavi v napisano besedilo. Ker sem hotel, da se zadeva izvede avtomatično, sem si ustvaril makro, ki ob odprtju wordovega dokumenta izvede oz. sproži postopek makra, kateri spoji podatke z dokumentom. Zadeva deluje če imam odprt excel in nato še samostojno odprem wordov dokument, kateri izvede celotni postopek makra. Zatakne se pa ko hočem preko lista 1 preko hiper povezave odpreti wordov dokument, pa napiše Microsoft Visual Basic run-time error "4248" z razlago Tega ukaza ni na voljo, ker ni odprtih dokumentov.
Makro ki je napisan takole:
Koda: Izberi vse
Sub postopek()
'
' postopek Makro
'
'
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI .xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OL" _
, SQLStatement:="SELECT * FROM `__1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ThisDocument.Close OriginalFormat
End Sub
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI .xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OL" _
, SQLStatement:="SELECT * FROM `__1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
Pomislil sem tudi na to, da navedeni makro poskuša z ukazom odpreti že odprt dokument in mogoče je napaka v tem, in mogoče obstaja samo kakšna finta oz. manjša sprememba makrota, zato se obračam na vas, ker upam da mi boste lahko pomogali!
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Da, to je tisto, kar sem vam raložil... Vi želite iz Excelovega dokumenta odpreti Wordov dokument, ki povrato odpre taisti Excelov dokument, kar a seveda ne bo šlo....
Poskusite makro popraviti tako, da najprej delovni zvezek Podatki.XLS prekopirate v npr. Podatki1.XLS in potem odprete ta prekopirani delovni zvezek!
Poskusite makro popraviti tako, da najprej delovni zvezek Podatki.XLS prekopirate v npr. Podatki1.XLS in potem odprete ta prekopirani delovni zvezek!
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
mi lahko pomagate s kodo glede kopiranja v drug dokument ter s kodo v tem smislu, da se potem prekopirani del zapre in se ne shrani?
hvala
hvala
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Tako kot sem vam napisal; najprej prekopirate datoteko in nato združevanje izvajate nad kopijo:
Koda: Izberi vse
Sub postopek()
' kopirate
filecopy "C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls", _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls", _
' združujete nad kopijo
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
.... itd...
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Ta nasvet sem upošteval vendar nadaljuje z napako in sicer se zaustavi pri naslednji vrstici With ActiveDocument.MailMerge. Potrebno bi bilo napisati nek drug ukaz kot pa aktivni dokument, sem poskušal imenom dokumenta pa ne rata? kje je napaka? PRAV TAKO TUDI NE NAREDI KOPIJE OZ JO POSODOBI?
prilagam tudi celotni makro:
prilagam tudi celotni makro:
Koda: Izberi vse
Sub postopek()
'
' postopek Makro
'
'filecopy "C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls", _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls", _
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls" _
, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA .xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OL" _
, SQLStatement:="SELECT * FROM `__1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
ThisDocument.Close OriginalFormat
End Sub
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
km... Glede na priloženi makro vam stvar sploh ne more delovati, saj imate vrstico za kopiranje zakomentirano... Če nič drugega, potem mora makro izgledati VSAJ takole:
Koda: Izberi vse
Sub postopek()
'
' postopek Makro
'
filecopy "C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI.xls", "C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls"
ActiveDocument.MailMerge.OpenDataSource Name:= _
"C:\Documents and Settings\Administrator\Desktop\IZDELKI\PODATKI_KOPIJA.xls" _
in tako naprej
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Hvala za ureditev, sedaj mi kopiranje deluje, vendar ko imam odprt dokument PODATKI in s pomočjo hiper povezave, katero imam povezano z wordovim dokumentov, kateri nadalje izvrši že predhodno napisan makro, ter tako iz dokumenta PODATKI_KOPIJA izvede spajanje napiše VBA run-time error "70", Premission denied", kako bi lahko to napako obvozil oz bi vseno izvedlo kopiranje dokumenta in nato spajanje?
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
Napake na morete kar zaobiti. Če bi jo lahko, potem to nebi bila napaka... Sicer pa ta konkretna napaka pomeni, da želite kopirati datoteko, ki je odprta. Excel očitno ne pusti kopiranja datoteke, ki je trenutno odprta... Makro v tej smeri zatorej preprosto ne bo deloval.
Kot sem rekel je problem dokaj jasen. Vi imate v Excelu odprto datoteko iz katere kličete Wordoov dokument, ki posledično spet želi odpreti to isto datoteko, kar seveda ne gre. To sva poskušala rešiti tako, da bi odprto datoteko najprej kopirala in nato izvedla spajanje a Excel tudi tu javi napako, zato to pač ne deluje.
No vi sicer trdite, da kopijo ustvari in če jr to res potem sicer imate možnost, da bi vam stvar delovala (vsekakor pa to ni prava pot...). Torej če pravite, da Excel kopijo ustvari potem res lahko ignorirate napako in izvedete makro... Pred FileCopy ukaz napišite sledeče:
No prava pot oz. prava rešite v vašem primeru pa je seveda ta, da da iz Excela izvedete spajanje dokumentov...
Kot sem rekel je problem dokaj jasen. Vi imate v Excelu odprto datoteko iz katere kličete Wordoov dokument, ki posledično spet želi odpreti to isto datoteko, kar seveda ne gre. To sva poskušala rešiti tako, da bi odprto datoteko najprej kopirala in nato izvedla spajanje a Excel tudi tu javi napako, zato to pač ne deluje.
No vi sicer trdite, da kopijo ustvari in če jr to res potem sicer imate možnost, da bi vam stvar delovala (vsekakor pa to ni prava pot...). Torej če pravite, da Excel kopijo ustvari potem res lahko ignorirate napako in izvedete makro... Pred FileCopy ukaz napišite sledeče:
Koda: Izberi vse
On Error Resume Next
FileCopy ....
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: NAPAKA PRI IZVRŠEVANJU MAKRA
HVALA ZA VAŠ TRUD, pomagali ste mi v veliki meri, razumem, da določenih stvari ni mogoče storiti, se bom pač moral prilagodit dovoljenim stvarem.
HVALA
HVALA