1

Konu: Açık Olan Excel Dosyasını Kapatmak.

Raporlamada Excel Dosyalarını Kullanıyorum. Oluşturulan bir excel dosyası açıkken farkında olmadan aynı adla tekrar oluşturulmak istendiğinde haliyle uyarı mesajı veriyor. Bunu önlemek için 'Run taskkill /f /IM Excel.exe' komutunu kullanıyorum. Bu da açık olan tüm excel dosyalarını kapatıyor. Kaydedilmeyen dosyalarda veri kaybı oluyor. Sadece açık olan excel dosyasını nasıl kapatabilirim?

2

Re: Açık Olan Excel Dosyasını Kapatmak.

1- excel dosyasini her defasinda farkli bir isimle olusturabilirsiniz sys(2015) ile

2- set safe off ile var olan excel dosyasinin uzerine yazdirabilirsiniz ( dosya kapali ise )

3

Re: Açık Olan Excel Dosyasını Kapatmak.

Maalesef dosya açık oluyor. Açık olan dosyayı kapatmak için bir çözüm arıyorum.

4

Re: Açık Olan Excel Dosyasını Kapatmak.

oExcel=Createobject('Excel.Application')
oExcel.Visible = .T.

IF 6 = Messagebox('Excel Kapatilsin mi?',4+32,'Seciminiz?')
    oExcel.Quit
ENDIF
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

5

Re: Açık Olan Excel Dosyasını Kapatmak.

Maalesef Olmuyor.

6

Re: Açık Olan Excel Dosyasını Kapatmak.

Hata mesajı?

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

7 Son düzenleyen, smentes (29.01.2020 08:23:34)

Re: Açık Olan Excel Dosyasını Kapatmak.

OLE IDispatch exception code 0 from Microsoft Excel: Erisim hatası : 'Banka_Listesi.xlsx'...

Banka_Listesi.xlsx dosyası açıkken tekrar aynı adla dosya oluşturulduğunda önceki açık olan Banka_Listesi.xlsx dosyasının kapatılması mümkün mü?

8 Son düzenleyen, ugurlu2001 (03.02.2020 20:59:04)

Re: Açık Olan Excel Dosyasını Kapatmak.

Eger Banka_Listesi.xlsx dosyasi foxpro icinden olusturulup acildiysa kolayca kapatilabilir.

Sadece fikir olarak sunu onerebilirim (Yada ben olsam ne yapardim demek daha uygun)

Excel dosyasini olusturuyorken, dosya isminin en sonuna Banka_Listesi_YYYYGGAA_DDSS_XXXX.xlsx (Yil, ay, gun, saat ve dakika  + birkac karakterlik rastgele bir karakter dizisi eklerdim)

Mesela: Banka_Listesi_20200203_2150_AB70.xlsx    gibi.

LOCAL lcExcelFileName 

FOR LNX = 1 TO 5
    m.lcExcelFileName = 'Banka_Listesi'  + '_' + Dtos(Date()) + '_'+ Chrtran(Time(),':','') +'_' +Substr(GetGuid(),2,4) + '.xlsx'
    Messagebox(m.lcExcelFileName,0+64,'Excel dosyasi olarak kullanilacak Unique isim!')
ENDFOR

 
Function getGUID && Cetin Basoz
    Declare Integer UuidCreate In 'RPCRT4.dll' String @pguid
    Declare Integer StringFromGUID2 In 'Ole32.dll' ;
        string rguid, String @lpsz, Integer cchMax

    Local pguid,rguid
    pguid=Replicate(Chr(0),16)
    rguid=Replicate(Chr(0),80)
    UuidCreate(@pguid)
    StringFromGUID2(pguid,@rguid,40)
    Return Strconv(Left(rguid,76),6)
Endfunc

Bazen kolaya kacmak en pratik + mantikli cozum olabiliyor.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

9

Re: Açık Olan Excel Dosyasını Kapatmak.

Evet Uğur bey mantıklı. En azından hata mesajı gelmez. Teşekkür ederim.

10

Re: Açık Olan Excel Dosyasını Kapatmak.

CreateObject yerine GetObject kullanabilirsiniz.