excel makro

Pomoč pri delu z MS Excelom
Odgovori
jackson3
Prispevkov: 19
Pridružen: Ne Jan 24, 2010 11:37 am

excel makro

Odgovor Napisal/-a jackson3 »

Pozdravljeni
Pred leti sem se igral s tem makroje zdaj sem pa čisto ven iz tega pa me zanima kako bi zgledal IF stavek v tem makroju kjer je :Application.Run "POTNINALOG.xls!OpenA24". A24 okno mi bere pogoje če je 1 beri datoteko1,če je 2 beri datoteko2 itd. do 8. Naprej pa ne gre več ,ker mi omejuje št. gnezd v formuli. Zdaj bi pa rad v novem oknu recimo A25 šel naprej: če je 9 beri datoteko 9 itd. Seveda moram v tem makroju dat IF funkcijo ,če je številka 1 do 8 beri A24, če je številka 9 do 16 beri A25.

Sub Save()
ActiveWorkbook.Save
End Sub
Sub OpenBox()
ChDrive "C:"
ChDir "C:\Potni nalogi\ "
Application.Dialogs(xlDialogOpen).Show
End Sub
Sub Shraniinodpri()
Application.Run "POTNINALOG.xls!Save"
Application.Run "POTNINALOG.xls!OpenA24"
End Sub
Sub OpenA24()
Workbooks.Open FileName:=Range("A24").Value
End Sub

Hvala za pomoč
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: excel makro

Odgovor Napisal/-a admin »

Pozdravljeni,

Moram priznati da niti pribljižno ne razumem kaj sprašujete oz. kaj počnete :(

Posledično seveda tudi ne vem od kot naj bi vi dobili pogoj oz. številko; a pod predpostavko, da to številko na nek način pač dobite potem bi makro izgledal nekako takole...

Koda: Izberi vse

Sub Shraniinodpri()
  Application.Run "POTNINALOG.xls!Save"

  ' ne vem kje boste dobili pogoj???

  if pogoj < 8 then
     Application.Run "POTNINALOG.xls!OpenA24"
  else
     Application.Run "POTNINALOG.xls!OpenA25"
  end if
End Sub
lp,
Matjaž Prtenjak
Administrator
jackson3
Prispevkov: 19
Pridružen: Ne Jan 24, 2010 11:37 am

Re: excel makro

Odgovor Napisal/-a jackson3 »

Pozdravljeni
Spet se oglašam. Najprej da razložim.
V excelu sem si naredil programček za potne naloge.
Narejeno imam takole. Odprem glavni program v excelu potninalogi.xls. To zgleda kot neko namizje, kjer imam vozila oz. registerske številke avtomobilov razvrščene od 1 naprej. V prvi fazi v okence napišem številko vozila se pravi 1,2,3,4...-to je stolpec B10. Vstolpcu B24 imam napisan algoritem-=IF(B10=1;"c:\potni nalogi\AVTO1\AVTO1.xls";IF(B10=2;"c:\potni nalogi\AVTO2\AVTO2.xls"; itd. V drugi fazi kliknem okno "odpri delovni nalog", ki požene zgornji makro in mi odpre datoteko, kjer imam vse podatke o posamičnem avtomobilu,datume prihoda, odhoda itd. Vse je bilo OK do 8 avtomobilov. Pri devetem se pojavi problem v stolpcu A24 ker je št. gnezdenj omejeno na 8. Zamislil sem si, da grem naprej na stolpec A25, kjer bi vpisal naslednjih 8 avtomobilov. Predlog, ki ste ga dali je OK, imam pa še problem v spodnjem delu makroja z odpiranjem datotek- workbox open. Nevem kakšen IF stavek bi dal, da mi odpre datoteke, ki so v A24 do št.8, oziroma A25 naprej do št 16.
Upam da sem razložil zadevo. Verjetno sem programček precej skompliciral, ampak zadeva dela odlično. Se vam tudi zahvaljujem, ko ste mi pred par leti kar precej pomagali z nasveti.
Lp
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: excel makro

Odgovor Napisal/-a admin »

Pozdravljeni,

Da res ste se naloge lotili povsem napačno in niste upoštevali, da imate na voljo Excel oz. sploh niste izkoristili njegovih prednosti. Na voljo imate dve skrajno preprosti rešitvi.

1. Povsem v duhu Excela
  1. Na listu pripravite tabelo, kjer imate v prvi koloni zapisan ID avtomobila, v drugi pa pot do njegove datoteke

    Koda: Izberi vse

    1    c:\potni nalogi\AVTO1\AVTO1.xls
    2    c:\potni nalogi\AVTO2\AVTO2.xls
    3    c:\potni nalogi\AVTO3\AVTO3.xls
    ...
    100  c:\potni nalogi\AVTO100\AVTO100.xls
    
  2. Sedaj v celico B24 samo vpišete navadno VLOOKUP formulo, ki vam glede na ID avtomobila vrne pot do njegove datoteke:

    Koda: Izberi vse

    =VLOOKUP(B10;AA1:AB100;2;FALSE)
    
2. Lahko pa izkoristite tudi dejstvo, da imate vse poti enako poimenovana in se spreminja samo številka, kar pomeni, da lahko v B24 preprosto vpišete sledečo formulo

Koda: Izberi vse

="c:\potni nalogi\AVTO" & B10 & "\AVTO" & B10 & ".xls"
lp,
Matjaž Prtenjak
Administrator
Odgovori