Article View: pl.comp.lang.vbasic
Article #104616Re: wstawianie terminów do Outlooka z Excela
From: Michal AKA Miki
Date: Thu, 06 May 2010 21:44
Date: Thu, 06 May 2010 21:44
100 lines
4956 bytes
4956 bytes
Użytkownik "Ryszard Mikke" <rmikke@NOSPAM.gazeta.pl> napisał w wiadomości
news:hrum22$54g$1@inews.gazeta.pl...
> Michal AKA Miki <jakistammichal@z.onetu.pl> napisał(a):
>
>> Użytkownik "Ryszard Mikke" <ryszard.mikke@gmail.com> napisał w wiadomości
>> news:eb026ccb-6c10-4d15-bb84-6ed1ad29c352@37g2000yqm.googlegroups.com...
>> >> Tak na szybko, to najprosciej zmodyfikowac excela z danymi - tam do
>> >> procedury Workbook_Open na samym poczatku wstawic kod, ktory sprawdza,
>> >> czy
>> >> twoj program jest uruchomiony (z konkretna sciezka i nazwa). Jesli
>> >> tak,
>> >> to
>> >> excel z danymi konczy dzialanie i staje sie zwyklym excelem...
>> >>
>> >> Napisz, czy twoj program wywolujacy plik z danymi to drugi arkusz
>> >> excela,
>> >> czy jakis exec lub vbs.
>> >
>> > Problem w tym, że nie mogę grzebać w pliku z danymi, z przyczyn hmm...
>> > pozatechnicznych.
>> > Dlatego chcę uruchamiać makro z innego pliku excelowego.
>>
>> W takim razie potrzeba wiecej szczegolow.. jesli mozesz, wrzuc makra
>> ktore
>> masz oraz te z pliku z danymi..
>> I napisz, w czym dokladnie jest problem - czy zglasza jakis blad, czy nie
>> wykonuje jakichs czynnosci, chociaz powinien...
>
> Skrypty z pliku z danymi nie sa dla mnie dostępne, ale skądinąd wiem,
> że cudów nie robia - wybierają tylko wiersz dla bieżącego dnia, żeby
> plik otwierał się w odpowiednim miejscu.
>
> Natomiast mój skrypt wygląda tak:
>
> Sub wstawSpotkania()
> Dim adresNazwiska, adresDaty As Range
> Dim komorkaNazwiska, komorkaDaty As Range
> Dim Plik, Arkusz, refNazwiska, refDaty As String
> Dim pomNazwiska, pomDaty As String
> Dim Wiersz, Komorka As Double
> Dim book As Workbook
> Dim sheet As Worksheet
>
> Set adresNazwiska = Range("B5")
> Set adresDaty = Range("B6")
>
> pomNazwiska = Mid(adresNazwiska.Formula, 2, 256)
> refNazwiska = Mid(pomNazwiska, InStr(pomNazwiska, "!") + 1, 256)
> pomDaty = Mid(adresDaty.Formula, 2, 256)
> refDaty = Mid(pomDaty, InStr(pomDaty, "!") + 1, 256)
> pomNazwiska = Mid(pomNazwiska, 1, InStr(pomNazwiska, "!") - 1)
> If Left(pomNazwiska, 1) = "'" Then
> pomNazwiska = Mid(pomNazwiska, 2, 256)
> End If
> If Right(pomNazwiska, 1) = "'" Then
> pomNazwiska = Mid(pomNazwiska, 1, Len(pomNazwiska) - 1)
> End If
> Arkusz = Mid(pomNazwiska, InStr(pomNazwiska, "]") + 1, 256)
> pomNazwiska = Mid(pomNazwiska, 1, InStr(pomNazwiska, "]") - 1)
> Plik = Application.WorksheetFunction.Substitute(pomNazwiska, "[", "")
> MsgBox "test 0"
> Application.EnableEvents = False
> Set book = Workbooks.Open(Plik, 0, False)
> '========Ponizej tego wiersza nic sie nie wykonuje=============
> Set sheet = book.Sheets(Arkusz)
> Application.EnableEvents = True
> 'Workbooks.Open Plik, 0, True
> MsgBox "test 1"
> Workbooks(Plik).Sheets(Arkusz).Activate
> ActiveSheet.Range(refNazwiska).Select
> MsgBox "Wybrało się?"
> ''Workbooks(Plik).Close SaveChanges:=False
>
> End Sub
>
> I błąd polega na tym, co w komentarzu - po otwarciu pliku z danymi
> nic więcej sie nie wykonuje z mojego skryptu. Skrypt starowy pliku z
> danymi
> robi swoje i nie zwraca mi sterowania.
>
A probowales przechodzic procedure klawiszem F8 (krok po kroku, kazde
nacisniecie F8 to 1 krok, wchodzac w kazda procedure zagniezdzona) - to jest
dobry debugger...
Na chwile obecna jedyne, co mi przychodzi na mysl, to zastapienie tego:
Application.EnableEvents=false
tym:
Application.AutomationSecurity = msoAutomationSecurityForceDisable
(tylko zeby potem z powrotem wrocic do poprzedniego modelu security trzeba
to troche rozbudowac)
Przyklad znajdziesz np tutaj:
http://www.excelforum.com/excel-programming/384353-using-vba-to-disable-macros-when-opening-files.html
Pozdrawiam
Michal
Technical Details
Message-ID:
<hrvd7m$sa6$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<hqsbee$1ae$1@inews.gazeta.pl> <hr11hp$bqi$1@inews.gazeta.pl> <hrerub$b8d$1@inews.gazeta.pl> <hrid0l$7p1$1@inews.gazeta.pl> <eb026ccb-6c10-4d15-bb84-6ed1ad29c352@37g2000yqm.googlegroups.com> <hrkot5$47l$1@inews.gazeta.pl> <hrum22$54g$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Michal AKA Miki" <jakistammichal@z.onetu.pl> Newsgroups: pl.comp.lang.vbasic Subject: Re: wstawianie terminów do Outlooka z Excela Date: Thu, 6 May 2010 23:44:20 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 102 Message-ID: <hrvd7m$sa6$1@inews.gazeta.pl> References: <hqsbee$1ae$1@inews.gazeta.pl> <hr11hp$bqi$1@inews.gazeta.pl> <hrerub$b8d$1@inews.gazeta.pl> <hrid0l$7p1$1@inews.gazeta.pl> <eb026ccb-6c10-4d15-bb84-6ed1ad29c352@37g2000yqm.googlegroups.com> <hrkot5$47l$1@inews.gazeta.pl> <hrum22$54g$1@inews.gazeta.pl> NNTP-Posting-Host: 213.135.1.187 X-Trace: inews.gazeta.pl 1273182262 28998 213.135.1.187 (6 May 2010 21:44:22 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 6 May 2010 21:44:22 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-Priority: 3 X-RFC2646: Format=Flowed; Original X-Newsreader: Microsoft Outlook Express 6.00.2900.5512 X-User: michalakamiki X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit