Odpiranje in zapiranje .xls datotek

Pomoč pri izdelavi makrov
Odgovori
capirossi
Prispevkov: 25
Pridružen: Če Dec 10, 2009 12:51 pm

Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a capirossi »

Pozdravljeni!

Imam dve Excelovi datoteki (test1.xls in test2.xls)...v datoteki test2.xls imam gumb, ki vsebuje naslednjo kodo:

Koda: Izberi vse

Private Sub nova_datoteka_Click()
Workbooks.OpenText Filename:="C:\test1.xls"
Windows("test1.xls").Activate
End Sub
Kodo sem skopiral iz foruma za odpiranje .txt datotek in samo namesto .txt na koncu napisal .xls...koda sicer deluje in mi pravilno odpre test1.xls datoteko.

Zatakne pa se ko želim zapreti test2.xls...in to že v samem štartu. Hotel sem narediti tako, da bi po odprtju test1 ponovno aktiviral test2 in jo zaprl...pred zaprtjem pa bi ponovno aktiviral test1.

Pa mi že ob kodi za aktiviranje datoteke test2

Koda: Izberi vse

Windows("text2.xls").Activate
javi napako. Ne vem kaj bi bilo lahko narobe zato vas prosim za pomoč.

Lep pozdrav, Loris
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a cedra »

Tole sem preizkusil in dela kot hočete vi:

Koda: Izberi vse

Sub Odpri_zapri()

    Workbooks.Open Filename:= _
        "C:\Documents and Settings\cedra\My Documents\test1.xls"
    Windows("test2.xls").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    
End Sub
lp,

cedra
capirossi
Prispevkov: 25
Pridružen: Če Dec 10, 2009 12:51 pm

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a capirossi »

Ja naredil sem napako, ker sem prvi del kode pisal v test2 drugi del pa v test1. Sedaj koda sicer dela ampak se po odpiranju datoteke test1 tam najprej izvede makro šele nato zapre test2. Je možno, da bi test2 zaprl še preden se v test1 izvede makro?
Pa še nekaj me zanima...kako bi isto zadevo rešil v primeru, da datoteka test2 ne bi imela konstantnega imena?

Hvala za pomoč
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a cedra »

Hmm, kot kaže imate v zvezku "test1" nek makro, ki se izvede pri odpiranju zvezka. Torej makro vežite na nek drug dogodek.
lp,

cedra
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a admin »

capirossi napisal/-a:Pa še nekaj me zanima...kako bi isto zadevo rešil v primeru, da datoteka test2 ne bi imela konstantnega imena?
Ime datoteke, ki jo želite odpreti morate vedeti, ali pa izbiro prepustite uporabniku in kar izbere uporabnik vpišete namesto 'test2.xls'. Torej:

Če veste ime

Koda: Izberi vse

  ...
    Workbooks.Open Filename:= "<neko poljubno ime>"
  ...
Če bo uporabnik izbral ime

Koda: Izberi vse

  ...
  Dim datoteka: datoteka = Application.GetOpenFilename("Vse datoteke,*.*", 1, , , False)
  If TypeName(datoteka) = "Boolean" Then Exit Sub
  Workbooks.Open Filename:= datoteka
  ...
lp,
Matjaž Prtenjak
Administrator
capirossi
Prispevkov: 25
Pridružen: Če Dec 10, 2009 12:51 pm

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a capirossi »

Hvala za odgovore se pa pri enem vprašanju nismo razumeli.
Datoteka, ki bi jo odpiral bo imela vedno isto ime se bo pa spremenjalo ime datoteke, ki jo zapiram. Torej bi moral naslednjo kodo prirediti:

Koda: Izberi vse

'Windows("ime trenutno odprte datoteke").Activate
ActiveWindow.Close
Znal bi narediti, da bi uporabnik vpisal ime datoteke, ki jo zapira v spremenljivko, ne znam pa narediti, da bi program sam vpisal ime v spremenljivko.

Lep pozdrav, Loris
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Odpiranje in zapiranje .xls datotek

Odgovor Napisal/-a admin »

capirossi napisal/-a:Znal bi narediti, da bi uporabnik vpisal ime datoteke, ki jo zapira v spremenljivko, ne znam pa narediti, da bi program sam vpisal ime v spremenljivko.
:? Zdaj boste pa morali malce premisliti, kaj želite, saj tale izjave ne pije vode :(... Program ime vpiše v spremenljivko pač na podlagi nekega algoritma in vi kot programer morate definirati algoritem...
lp,
Matjaž Prtenjak
Administrator
Odgovori