..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

Zagon macro-ja izven excela

Pomoč pri delu z MS Excelom

Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Ne apr 17, 2011 4:18 pm

Pozdravljeni

Stvar je taka: za vsak dan v mesecu imam en excel-ov zvezek, katereih imena so npr.: 010411.xls, 020411.xls.....Na kak način bi lahko zagnal makro v vseh zvezkih, ne da bi mi bilo potrebno odpirat posamezen zvezek, rezultat makroja pa bi se videl v nekem novem zvezku; vsak zvezek npr. 0104011.xls.... na posebnem listu, ki bi se imenoval enako ko določen zvezek npr. 010411........, torej bi imel 31 listov oziroma kolikor je dni v mesecu. Upam da se razložil dovolj razumljivo.
hvala

lpa
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm



Matjazev.NET
 

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Ne apr 17, 2011 6:30 pm

Makra v delovnem zvezku, ne morete zagnati če delovnega zvezka ne odprete!

problema ste se lotili z napačnega konca. Imejte en delovni zvezek v katerem je makro, ki odpre posamezne DZ in v njih naredi tisto kar želite.
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Ne apr 17, 2011 8:08 pm

Ne vem če prav razumem. Imam npr. delovni zvezek katerem bom shranjeval rezultate po izvedenem mojem makroju in iz tega zvezka z drugim makrojem odpiram zvezke za posamezen dan. Na kak način pa naj z makrojem odpiram zvezke, saj ima vsak drugačno ime.

lpa
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Ne apr 17, 2011 8:17 pm

Z makrom lahko počnate VSE kar bi sicer počeli preko menijev, kar pomeni, da lahko napišete makro, ki odpre nek delovni zvezek in v nejm nekaj uredi ter ga nato zapre... Primerov imate na forumu kar nekaj - poiščite tematike s ključno besedo 'Workbooks.Open'
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Pe apr 29, 2011 8:34 pm

Hvala za namig, vendar so se pojavile težave. Bom kar kodo pripel da bom lažje razložil kaj me muči.

Koda: Izberi vse
Sub Odpri_vec()

ChDir ("C:\podatki")
Dim datoteka: datoteka = Application.GetOpenFilename("Excel Files,*.xls", 1, , , False)
If TypeName(datoteka) = "Boolean" Then Exit Sub
  Workbooks.Open Filename:=datoteka
  lista_vse
End Sub

Sub lista_vse()

  Dim indeks As Integer, indeks1 As Integer
  indeks1 = 2
'  Range("List3!A1:F500").ClearContents

  For indeks = 1 To 500
    If Left(Range("List!D" & CStr(indeks)), 1) = "B" Then delaj indeks, indeks1
    '
    '
    '
    '
  Next indeks
 
'  Sheets("List3").Select
 
End Sub


Sub delaj(indeks As Integer, indeks1 As Integer)
        Range("List3!A" & CStr(indeks1)) = Range("List!A" & CStr(indeks))
        '
        '
        '
        '
        indeks1 = indeks1 + 1

End Sub


Vsak zvezek, ki da odprem ima en list, ki ima kot ime datum (01042011.........) V njem zaženem subrutino lista_vse. Ne vem kako naj imenujem v subrutini "liste", da bo koda delovala za "vsak dan". Potem pa želim rezultate makroja vedno shranit v isti zvezek, ki bo imel liste poimenovene tako kot je v zvezku ki ga odprem na žačetku (01042011, 02042011...........)
Upam da sem uspel razložiti kaj me muči.

lp
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Pe apr 29, 2011 10:40 pm

Ime lista imate zapisano v lastnosti:
Koda: Izberi vse
  ActiveSheet.Name
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Ne maj 01, 2011 8:52 pm

Se opravičujem, ampak ne razumem

Koda: Izberi vse
If Left(Range("List!D" & CStr(indeks)), 1) = "B" Then delaj indeks, indeks1


Tukaj imam v delčku kode zapisano "List!D". S čim naj nadomestim to da bo zadeva delovela v listu ki je aktiven in katerim se imena spreminjajo. Z ActiveSheet.Name mi ne deluje.

hvala
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Ne maj 01, 2011 9:15 pm

Koda: Izberi vse
If Left(Range(ActiveSheet.Name & "!D" & CStr(indeks)), 1) = "B" Then delaj indeks, indeks1
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Po maj 02, 2011 5:30 pm

Najlepša hvala :D Počasi nekaj bo. Zadevo sem si zamislil in jo naredil za sedaj tako se odpre menu Open izberem željen zvezek npr. 01042011.xls v njem izvedem kar želim nato ta list (01042011) skopiram v drugi zvezek (master.xls), zopet se mi odpre menu Open izberem npr. 02042011.xls v njem izvedem kar želim nato ta list (02042011) skopiram v zvezek master.xls.........

Koda: Izberi vse
ActiveSheet.Copy Before:=Workbooks("master.xls").Sheets(1)
    Application.WindowState = xlMinimized
    Columns("A:G").Select
    Selection.Delete Shift:=xlToLeft
    Range("A1").Select
    Windows("master.xls").Select


Problem (mi ne uspe izvesti) pa je da bi rad, da ko se odpre Menu Open, da bi bil aktiven zvezek master.xls (da mi ga nebi bilo treba klikniti) in da bi se zvezek npr. 010402011.xls avtomatsko zaprl brez da shrani spremembe ko list iz njega skopiram v master.xls.

hvala

lp
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Po maj 02, 2011 10:25 pm

Hm,

če nakako poskusim po vaših vprašanjih...
ajk je napisal/-a:Problem (mi ne uspe izvesti) pa je da bi rad, da ko se odpre Menu Open...

To ne vem kaj bi bilo?

ajk je napisal/-a:da bi bil aktiven zvezek master.xls (da mi ga nebi bilo treba klikniti)

Koda: Izberi vse
Workbooks("master.xls").Sheets(1).Select


ajk je napisal/-a:in da bi se zvezek npr. 010402011.xls avtomatsko zaprl brez da shrani spremembe ko list iz njega skopiram v master.xls.

Koda: Izberi vse
Workbooks("010402011.xls").Close SaveChanges:=false
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » To maj 03, 2011 6:55 pm

admin je napisal/-a:
Koda: Izberi vse
Workbooks("master.xls").Sheets(1).Select

Mogoče se nisem pravilno izrazil kaj hočem doseči amapak ta koda ne neredi tisto kar želim. Ko gre makro prvič skozi se mi zopet odpre menu Open kjer izberem kateri zvezek želim odpreti, da se zopet izvede celotna procedura........Vedno pa moram v Taskbar vrstici klikniti na zvezek master.xls, da mi je ta viden na zaslonu in da lahko izberem drug tvezek.

admin je napisal/-a:
Koda: Izberi vse
Workbooks("01042011.xls").Close SaveChanges:=false

Problem tukaj pa je da se imena datotek spreminjajo, ni vedno datoteka "01042011.xls".

lp
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » To maj 03, 2011 7:09 pm

Hm... sedaj pa ste že zašli že čisto v specifike vašega konkretnega makra in tukaj vam ne morem več pomagati, saj ne vem kako je makro zgrajen...
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Ne sep 03, 2017 11:19 am

Pozdravljeni

Zanima me kaj je narobe v drugi skripti da ne deluje. Skripti sta iz spleta in kakor tam prikazuje delujeta brez problema:

Prva skripta:
Koda: Izberi vse
Dim args, objExcel

Set args = WScript.Arguments
Set objExcel = CreateObject("Excel.Application")

objExcel.Workbooks.Open args(0)
objExcel.Visible = True

objExcel.Run "test"

objExcel.ActiveWorkbook.Save


Druga skripta: pri tej mi pa javlja da makroje ni mgoče zagnati, ker ali ni makro na voljo v delovnem zvezku ali pa so vsi makroji onemogočeni. Naj povem da makro imam v delovnem zvezku in tudi makroji do omogočeni
Koda: Izberi vse
Set objExcel = CreateObject("Excel.Application")

objExcel.Application.Run "'C:\Test1\Sales.xlsm'!List2.test1"

objExcel.DisplayAlerts = False
objExcel.Application.Quit
Set objExcel = Nothing


Že vnaprej hvala za pomoč
Zadnjič spremenil ajk, dne To sep 05, 2017 9:52 pm, skupaj popravljeno 1 krat.
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a admin » Po sep 04, 2017 12:45 pm

Pozdravljeni,

In kakšno napako makro javi?
Ali sploh veste, kaj naj bi naredil, ter kako ga morate zagnati?

Args(0) pomeni da želi brati prvi argument iz ukazne vrstice!
lp,
Matjaž Prtenjak
Administrator
admin
Site Admin
 
Prispevkov: 3530
Pridružen: Sr jul 20, 2005 10:06 pm

Re: Zagon macro-ja izven excela

OdgovorNapisal/-a ajk » Po sep 04, 2017 2:28 pm

Makro, ki je v samem excelu je čisto enostaven (vpiše uro v celico A1) in deluje. Makro ne javlja napake. Ti dve skripti z katerima hočem zagnati makro v excelu mi javljata napako.
ajk
 
Prispevkov: 48
Pridružen: So jan 01, 2011 10:20 pm

Naslednja

Vrni se na Excel

Kdo je prisoten

Po forumu brska: Bing [Bot] in 5 gostov

cron