Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VBA- Otvaranje radne knjige u "tajnosti"

[es] :: Office :: Excel :: VBA- Otvaranje radne knjige u "tajnosti"

[ Pregleda: 1762 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Djuka Maricic
Djuka Maricic
Mirijevo

Član broj: 71362
Poruke: 18
*.adsl-a-3.sezampro.rs.



+2 Profil

icon VBA- Otvaranje radne knjige u "tajnosti"24.05.2011. u 13:16 - pre 157 meseci
Zanima me da li je moguce da otvorim, pomocu vba, iz jedne radne knjige (Workbook) drugu, ali u tajnosti, tj da se ne vidi njeno otvaranje?
Posto mi je jedan workbook kao baza, pa prilikom pozivanja nekih komandi, potrebno mi je da prepisem (preuzmem) odredjene podatke iz baze. Ako iskljucim Screen Updating (ScreenUpdating=False), opet se vidi otvaranje baze, posto izvrsenja nekih komandi traju malo vise.

Moj kod izgleda ovako:
Code:
Dim baza As Workbook
Dim wsb As Worksheet

Application.ScreenUpdating = False

Set baza = Workbooks.Open("C:\Base.xls)

Set wsb = baza.Sheets(1)


Sad me zanima da li moze nekako da se postavi, da se baza ne vidi da je otvorena, ali da ja idalje mogu preuzimati podatke iz nje.

Pretrazivao sam po forumu, ali nisam uspeo nadjem da slicnu temu, ako sam propustio, posaljite i mi link do te teme.
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon Re: VBA- Otvaranje radne knjige u "tajnosti"24.05.2011. u 15:17 - pre 157 meseci
Ako samo preuzimas podatke iz nekog udaljenog dokumenta, onda nemas nikakav problem sa time da li se vidi ili ne. Ti otvoris bazu, preuzmes podatke, zatvoris bazu i kraj. E sad, ne mogu da verujem da "Application.ScreenUpdating = False" bas ni malo ne ubrza celu proceduru. Osim ako ne preuzimas hiljade podataka. Dakle, ja bih to ovako:

Code:
Sub Preuzmi_Iz_Baze

Dim baza As New Excel.Workbook, wb As Workbook, wsb As Worksheet, ws As Worksheet
 Application.ScreenUpdating = False
    Set baza = Workbooks.Open("C:\Base.xls)  'udaljeni dokumenat - baza
    Set wb = ThisWorkbook                           'tekuci dokumenat - program
    Set wsb = baza.Sheets(1)                       'sheet(1) u bazi
    Set ws = wb.Sheets(1)                           'sheet(1) u programu

   ' sledi preuzimanje podataka, na primer:

   ws.Range("A2:A10") = wsb.Range("A2:A10")
   ws.Range("B5:B15") = wsb.Range("C20:C30")

       baza.Close  'ZATVARA BAZU

End Sub


Ja to koristim u mnogim svojim programima, i nemam problema, odnosno - sve se uradi u "tajnosti", kao sto kazes.
Pozdrav

Edit: dodati tagovi

[Ovu poruku je menjao 3okc dana 25.05.2011. u 12:13 GMT+1]
 
Odgovor na temu

3okc
Χoᴘᴦoѡ

Moderator
Član broj: 811
Poruke: 1319

Jabber: 3okc@elitesecurity.org


+116 Profil

icon Re: VBA- Otvaranje radne knjige u "tajnosti"25.05.2011. u 11:18 - pre 157 meseci
Mislim da bi najbolja strategija bila da 'bazu' otvoriš u pozadini još prilikom otvaranja dokumenta i da je onda drziš sakrivenu tokom rada. Na ovaj način bi izbegao primetno usporavanje zbog povremenog povlačenja podataka..
Naravno, nemoj zaboraviti da je onda isto tako zatvoriš, pre zatvaranja dokumenta.
Have you found helpful examples, solutions or ideas-in-work, please consider the
following:
• Citation of *actual page* you are going to using is welcome.
• Have you saw "Value Added" examples you are going to incorporate to your
profitable blog, daily job or any money making venture: How about online donation?
↗Ana & Vlade Divac Foundation
Hvala!
 
Odgovor na temu

Djuka Maricic
Djuka Maricic
Mirijevo

Član broj: 71362
Poruke: 18
109.121.54.*



+2 Profil

icon Re: VBA- Otvaranje radne knjige u "tajnosti"25.05.2011. u 13:23 - pre 157 meseci
Citat:
E sad, ne mogu da verujem da "Application.ScreenUpdating = False" bas ni malo ne ubrza celu proceduru

Application.ScreenUpdating = False veoma ubrzava proceduru, to nema pogovora. Ali se desavalo da sam ponekad morao da uporedjujem neke novoucitane podatke u program sa onima iz baze, pa to ume malo da potraje, nije to nista strasno, samo je moj subjektivni dozivljaj bio da me "nervira" sto se u toj situaciji vidi otvaranje baze.

Citat:
Mislim da bi najbolja strategija bila da 'bazu' otvoriš u pozadini još prilikom otvaranja dokumenta i da je onda drziš sakrivenu tokom rada.

Ako sam dobro razumeo trebao bih da uradim nesto ovako prilikom otvaranja dokumenta:

Code:
Public baza As Workbook

Private Sub Workbook_Open()
Dim eksel2 As New Excel.Application

eksel2.Visible = False
Set baza = eksel2.Workbooks.Add("C:\Base.xls")

End Sub

Ovo sam sad na brzinu testirao, i radi (lakse povlacim podatke, tj brze). Samo ne znam da li si na ovo mislio 3okc?
 
Odgovor na temu

[es] :: Office :: Excel :: VBA- Otvaranje radne knjige u "tajnosti"

[ Pregleda: 1762 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.