[ mirko1949 @ 02.09.2008. 08:48 ] @
Kako je moguce iz Forme (UserForm) pomocu dugmeta (CommandButton) navodjenjem putanje otvoriti bilo koji fajl. Pozdrav |
[ mirko1949 @ 02.09.2008. 08:48 ] @
[ timmy @ 03.09.2008. 21:46 ] @
Dodaj kod za onclick dogadjaj dugmeta npr.
Code: Shell "C:\myapp.exe" , vbNormalFocus ili da otvoris beleske u Notepad-u Code: Shell "notepad C:\beleske.txt", vbNormalFocus Pozdrav [ mirko1949 @ 04.09.2008. 09:34 ] @
Hvala timmy
Ipak nesto ne funkcionise kako treba. Naime kad kliknem na dugme sve ostaje isto. naveo sam najprostiju putanju: Private Sub CommandButton1_OnClick() Shell "C\Racun tabela.xls", vbNormalFocus End Sub Probao sam i sa CommandButton1_Click() i opet nista. Gde gresim. [ Catch 22 @ 04.09.2008. 09:43 ] @
Citat: mirko1949: Gde gresim. Ako koristiš Shell komandu, moraš navesti i naziv aplikacije (eventualno i putanju), a ne samo fajla. Pogledaj malo bolje kod koji ti je timmy postavio... [Ovu poruku je menjao Catch 22 dana 04.09.2008. u 12:37 GMT+1] [ goranvuc @ 04.09.2008. 10:31 ] @
Shell nije komanda nego funkcija
![]() Ako hoces vec da koristis Shell() funkciju onda mozes to na sledeci nacin: Code: Shell "cmd /C ""C:\Racun tabela.xls""", vbHide Ovom linijom koda u stvari pozivas skriveni CommandPrompt i kazes mu da izvrsi otvaranje zadatog fajla programom koji je registrovan na sistemu kao default da ga otvori. Dok je fajl otvoren, imas i cmd.exe u procesima, a kada zatvoris fajl nestaje i cmd.exe iz liste aktivnih procesa. Ja ti ipak preporucujem ShellExecute() [ Catch 22 @ 04.09.2008. 12:09 ] @
Citat: mirko1949: Private Sub CommandButton1_OnClick() Shell "C\Racun tabela.xls", vbNormalFocus End Sub Gde gresim. Da bi izbegao dodatnu zbrku zbog razmaka u nazivu fajla, preimenuj fajl u Racun_tabela.xls Onda probaj samo da prepraviš svoj kod ovako i proradiće Code: Private Sub CommandButton1_OnClick() Shell "excel C:\Racun_tabela.xls", vbNormalFocus End Sub ili ako zelis da ostavis razmak u imenu fajla Code: Shell "excel ""C:\Racun tabela.xls""", vbNormalFocus [ mirko1949 @ 04.09.2008. 13:47 ] @
Ovo je uspelo, ali samo sa pozivanjem dokumenata iz Excela, ali kada sam probao za Word nece. Izmenio sam kod na:
Shell "word""C:\Racun tabela.doc""", vbNormalFocus javlja mi gresku "Run time error 53" i File not found. [ Catch 22 @ 04.09.2008. 17:52 ] @
Nisi dobro pozvao zeljeni program
Ovako radi: Code: Private Sub CommandButton1_OnClick() Shell "excel ""C:\Racun tabela.xls""", vbNormalFocus Shell "winword ""C:\Racun tabela.doc""", vbNormalFocus End Sub [ mirko1949 @ 10.09.2008. 11:11 ] @
Hvala na pomoći, ali i pored toga nije mi uspelo. U jednom trenutku mi je uspelo za Excel, ali za word nije, mada sam kopirao zadnje kodove.
[ Catch 22 @ 10.09.2008. 12:18 ] @
Pa moraš i da imaš navedene dokumente, pod tačno tim nazivom, na tačno toj putanji inače Excel i Word prijave grešku i otvore blanko dokumenat:
C:\Racun tabela.xls C:\Racun tabela.doc Simulirao sam navedenu situaciju na svom računaru i to radi, ne vidim zašto i kod tebe ne bi radilo? [ mirko1949 @ 11.09.2008. 06:19 ] @
Primenio sam sve to. Oba dokumenta sam smestio sa nazivom "Racun tabela" direktno u C, medjutim kada kliknem na dugme u formi ne dešava se ništa, čak nejavlja nikakvu grešku. Probao sam i sa drugim putanjama za disk D, ali opet ništa. Da li eventualno postoji neka druga mogućnost.
[ Catch 22 @ 11.09.2008. 08:56 ] @
Da li se dugme u tvojoj formi se zove "CommandButton1"?
PS Mozda bi bilo brze da okacis ovde taj svoj excel fajl pa da vidimo tacno u cemu je greska [ mirko1949 @ 11.09.2008. 10:19 ] @
Da baš tako se zove. Evo prikacen fajl moje probe. Da dodam još da mi se direktno na disku C nalazi dokument Racun tabela.
[ Catch 22 @ 11.09.2008. 12:23 ] @
^ ?????!!!!!!
Tvoj fajl Povezivanje.xls je prazna radna sveska, sa dva prazna radna lista, nema nikakve forme, dugmadi, koda... ???? :( [ mirko1949 @ 11.09.2008. 12:29 ] @
Nije prazna sveska. U VB (Alt+F11) je UserForm1 sa dugmetom.
[ Gix_ @ 12.09.2008. 20:57 ] @
Pozdrav za sve
Mirko u prikacenom primeru imas gresku u imenu boutona (dugmeta), dugme tise zove CommandButton1_Click a ne CommandButton1_OnClick Inace linija komande vrsi svoju funkciju ( Shell "excel ""C:\Racun tabela.xls""", vbNormalFocus ) Pozdrav [ Catch 22 @ 12.09.2008. 21:27 ] @
[ Gix_ @ 12.09.2008. 21:37 ] @
Catch normalnoje da nevidis nista blokirati komande excel 07
kod mene ista stvar sa 07 otvori sa excelom 03 i sveje OK. Verovatno nesto oko sigurnosti makroa ??? [ Catch 22 @ 12.09.2008. 22:01 ] @
Otvaram fajl iz "Trusted Locations" gde se inače nalaze i moji excel fajlovi sa raznim kodom i makroima, ništa mi nije jasno!? Nikakvo upozorenje mi ne ispisuje!?
[att_img] Probaću sa Excel 2002 na drugom sistemu... [ mirko1949 @ 12.09.2008. 22:08 ] @
Neznam kako je nastala greska. Evo opet saljem fajl.
Kako da se izvede to da se zove CommandButton1_OnClick Imam jos jedno pitanje: Kako bi glasila linija koda da se otvori npr BS player Pro file ili Movie Clip [ Catch 22 @ 12.09.2008. 22:24 ] @
Citat: mirko1949: Neznam kako je nastala greska. ... Kako da se izvede to da se zove CommandButton1_OnClick ^ Greska je do Excela 2007, koji ima takve bezbednosne mehanizme da onesposobi sve zivo (!!!???) U tvom slucaju, kako ti je vec odgovoreno, treba da pise: Code: Private Sub CommandButton1_Click() Shell "excel ""C:\Racun tabela.xls""", vbNormalFocus Shell "winword ""C:\Racun tabela.doc""", vbNormalFocus End Sub Evo ti primerak pa probaj (za oba fajla C:\Racun tabela.xls i C:\Racun tabela.doc) [ Gix_ @ 12.09.2008. 22:35 ] @
nemoj razbivati glavu mislim daje nemoguce dodeliti neko ime posle povucene crte _OnClick
ako bas hoces rec On napisi ovako CmdOn_Click za drugo pitanje recimo nesto u stilu Aktivirati Filezilla (FTP) Sub Bouton_Quandclick() shell "c:/program files/filezilla/filezilla.exe" End sub [ Ivek33 @ 12.09.2008. 22:49 ] @
Citat: Catch 22: ^ ?????!!!!!! Tvoj fajl Povezivanje.xls je prazna radna sveska, sa dva prazna radna lista, nema nikakve forme, dugmadi, koda... ???? ![]() ![]() [ Catch 22 @ 12.09.2008. 22:53 ] @
^ Vidim i ja sada u Excel 2002, ali iz Excel 2007 nema ništa, pa čak ni uobičajeno upozorenje pri otvaranju fajla (???!!!!)
[ Gix_ @ 12.09.2008. 23:07 ] @
Catch kad otvaras sa 2003 daje neko cudno upozorenje za ( module classe )
verovatnoje prikaceni dokumenat je neki dokumenat modificiran vise puta i razne kode su dodavane pa brisane. Ostalaje neka posledica koju 2007 prepoznaje kao fatalnu gresku i nedaje nikakvo upozorenje vec onemogucava bilo kakvo izvrsavanje komandi u dokumentu . Cao ljudi odo na spavanje. [ Catch 22 @ 12.09.2008. 23:19 ] @
Pa i Excel 2002 ispisuje upozorenje...
[att_img] [ Ivek33 @ 12.09.2008. 23:34 ] @
Citat: Catch 22: Pa i Excel 2002 ispisuje upozorenje... [ mirko1949 @ 13.09.2008. 07:15 ] @
Hvala na pomoci. Konacno bez problema otvaram i Excel i Word dokument.
Sto se tice mog dodatnog pitanja hteo bih da recimo otvorim fajl ciji je naziv: "Picture 052.avi" i nalazi se direktno na disku C. Kako da to oznacim u liniji koda. Uopste kako se postupa sa razlicitim fajlovioma. Gix-ov savet mi nije jasan. Citat: Gix_: za drugo pitanje recimo nesto u stilu Aktivirati Filezilla (FTP) Sub Bouton_Quandclick() shell "c:/program files/filezilla/filezilla.exe" End sub [ Gix_ @ 13.09.2008. 14:31 ] @
Re,
ovako iz glave mislim dabih trebalo napisati liniju Private Sub CommandButton1_Click() Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" ""C:video 1.avi""", vbMaximizedFocus End Sub Izmedju prvih navodnica naznacis gdese nalazi program kojim zelis da otvoris tvoj fail a zatim izmedju sledecih navodnica mesto gdese nalazi tvoj fail i njegovo ime cao [ mirko1949 @ 15.09.2008. 07:39 ] @
Hvala Gix. Probao sam sa MP3 i odmah otvori. kod video fajlova otvori uspesno aplikaciju, ali nece da je izvrsi. Procackacu jos malo.
Pozdrav svima [ Catch 22 @ 15.09.2008. 11:41 ] @
^ Još je ostalo da nam odaš tajnu šta to zapravo pokušavaš da napraviš... jel nekakav katalog?
![]() [ mirko1949 @ 15.09.2008. 12:27 ] @
Nije tajna i nije katalog. Radi se o jednoj radnoj svesci u Excelu u kojoj se vrse proracuni. Forma za unos sluzi za unosenje podataka. Medjutim, cesto je potrebno otvarati razna dokumenta pa i video (kratke) filmove (i oni sluze da bi se u njima videli neki podaci), te mislim da je najzgodnije to uraditi iz forme preko vise CommandButton-a koji daju put do tih fajlova.
pozdrav [ Gix_ @ 15.09.2008. 22:49 ] @
Re,
palamije jedna ideja na pamet ostaje dase vidi koliko moze posluziti. 1. pri otvaranju documenta aktivirati macro komande 2. aktivirati kontrole activeX 3. ALT+F11 aktivirati referenciju za Windows Media Player (čekirati opciju) , prilagoditi mesto i ime za film ili muziku na HDD 4. pokrenuti formu pa reci sta mislis Pozdrav [ mirko1949 @ 16.09.2008. 10:02 ] @
Hvala Gix, vrlo zanimljivo resenje. na brzinu sam probao ali mi u liniji:
USF.WindowsMediaPlayer1.URL = "C:\\Luce Moje.mp3" 'Prilagoditi mesto i ime !!! prilagodio sam ime i mesto. Probacu malo detaljnije. [ mirko1949 @ 22.09.2008. 11:06 ] @
Hval Gix_, Probao sam tvoju formu (prilagodio sam je) i odlicno funkcionise. Jos jednom hvala.
Imam jos jedno dodatno pitanje. Ako su za Word i Excel linije kodova sledece: Shell "excel ""C:\Racun tabela.xls""", vbNormalFocus Shell "winword ""C:\Racun tabela.doc""", vbNormalFocus Kako bi glasila linija da se otvori dokument u AdobeReader-u [ Gix_ @ 23.09.2008. 08:00 ] @
Re,
Mislim da ova procedura moze da zavrsi posao. Code: Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal _ lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As _ String, ByVal nShowCmd As Long) As Long Private Const SW_SHOWNORMAL As Long = 1 Sub test() ShellExecute hwnd, "open", "C:\ImeTvogDokumenta.pdf", vbNullString, vbNullString, SW_SHOWNORMAL End Sub Pozdrav [ mirko1949 @ 23.09.2008. 11:34 ] @
Probao sam tvoj kod, ali nesto ne funkcioniše. Možda nisam dobro primenio, pa ako može malo detaljnije objašnjenje.
Pozdrav [ Gix_ @ 23.09.2008. 13:12 ] @
Re,
akotije u pocetku modula ili forme napisana obavezna deklaracija variable (Option Explicit) moras da deklaliras variablu ( hwnd ) koja je tipa Long. Pripazi na liniju : ShellExecute hwnd, "open", "C:\ImeTvogDokumenta.pdf", vbNullString, vbNullString, SW_SHOWNORMAL trebas je prepisati po celokupnoj duzini, ovako : ShellExecute hwnd, "open", "C:\ImeTvogDokumenta.pdf", vbNullString, vbNullString, SW_SHOWNORMAL izvini misliosam daces se snaci sam zato nisam obracao paznju na male detalje . Pozdrav Code: Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal _ lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As _ String, ByVal nShowCmd As Long) As Long Private Const SW_SHOWNORMAL As Long = 1 Sub test() Dim hwnd As Long ShellExecute hwnd, "open", "C:\ImeDokumenta.pdf", vbNullString, vbNullString, SW_SHOWNORMAL End Sub [ mirko1949 @ 25.09.2008. 12:20 ] @
Hvala, sad radi. Nije bio problem u liniji (napisao sam je celom duzinom, vec sam napravio glupu gresku u putanji. Hvala
Pozdrav Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|