Zagon macro-ja izven excela

Pomoč pri delu z MS Excelom
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

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
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

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
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

Ime lista imate zapisano v lastnosti:

Koda: Izberi vse

  ActiveSheet.Name
lp,
Matjaž Prtenjak
Administrator
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

Koda: Izberi vse

If Left(Range(ActiveSheet.Name & "!D" & CStr(indeks)), 1) = "B" Then delaj indeks, indeks1
lp,
Matjaž Prtenjak
Administrator
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

Hm,

če nakako poskusim po vaših vprašanjih...
ajk 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 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 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
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

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
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a admin »

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
ajk
Prispevkov: 60
Pridružen: So Jan 01, 2011 10:20 pm

Re: Zagon macro-ja izven excela

Odgovor Napisal/-a ajk »

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