Az „Excel” fórum célja, hogy keretet adjon az Excel felhasználók széles táborának tapasztalataik megosztására, és lehetőséget a segítséget kérőknek. Az alábbi összefoglaló azért készült, hogy segítse a helyes kérdésfeltevést.
– Írd le szabatosan a problémát. Úgy fogalmazz, hogy ne csak te magad, de a szakértő is megértse, mire szeretnél választ kapni.
– Írd le, hogy milyen verziójú Excellel dolgozol. (Vagy ha nem – ill. nem csak – Excel, akkor micsoda?)
– Írd le, hogy milyen úton indultál el, és hol akadtál el rajta.
– A kérdés megértése szempontjából sokat segíthet, ha feltölteszt egy képet, amin látszik, hogy mit szeretnél, vagy illusztrálja azt.
– Még jobb, ha feltöltesz egy minta munkafüzetet valahová (pl. data.hu). Feltöltés előtt távolítsd el belőle a nem publikus adatokat.
– Ha a feladat jellege olyan, célszerű az "előtte" és "utána" állapotokat bemutatni. (Miből kellene csinálni mit?)
– Ha VBA kódon kell javítani, másold be a releváns kódrészt. Rövid kód mehet hozzászólásba, hosszú kód inkább ide: http://pastebin.com/
– Ha valami nem úgy működik, ahogy kellene, add meg a rendellenes viselkedés jellemzőit, a hibaüzenetet, és a hibát okozó programsort.
Találtam egy kódot, ami nem kérdez rá, simán elküldi az az üzenetet.
(Tools -> References -> Microsoft Outlook xx.x Object Library)
Sub SendMail() Dim objOutlook As Object Dim objMailMessage As Outlook.MailItem Dim emlBody, sendTo As String Dim wkbook As String Set objOutlook = CreateObject("Outlook.Application") Set objMailMessage = objOutlook.CreateItem(0) sendTo = "valaki@valahova.hu" emlBody = "Üzenet szövege" With objMailMessage .To = sendTo .Body = emlBody .Subject = "Üzenet tárgya" .Display .Save .Send End With End Sub
ha aktív az üzenetküldés ablaka, akkor esetleg egy sendkey-el lehet küldeni neki egy alt+entert, az működik szinte minden levelező programban - mint üzenet elküldése.
Igen, de attól még érdemes megpróbálni, mert jóval kényelmesebb így, mintha kézzel kellene megírni az értesítést. És mindenképpen javítja az esélyeket, a nulla javulás feltétele az, hogy zcsorgo "elfelejtse" elküldeni a levelet. Azt pedig nehéz lesz elfelejteni, hiszen közvetlenül a munkafüzet mentése után felugrik neki egy ablak a küldendő levéllel. Neki pedig nem érdeke, hogy elfelejtse, hiszen ő akarta ezt az egészet.
Ha Outlook lenne a levelezőprogram, akkor makróból el tudnám küdeni a levelet, de még akkor is az Outlook rákérdezne, hogy "Egy alkalmazás az Ön nevében üzenetet próbál küldeni, engedélyezi-e" vagy valami hasonló. Szóval user beavatkozás nélkül nem nagyon fog ez menni. Lehet, hogy a Lotus másképp működik. Hétvégén talán lesz időm megpróbálkozni vele. De nem ígérek semmit.
Rájöttem, hogy lehet ezt a mail alkalmazás mélyebb ismerete nélkül is, ha nem kell nagyon cizellált üzenet.
Sub Levélküldés() Dim mTo As String, mCC As String, mBCC As String Dim mSubject As String, mText As String, s As String
mTo = "te@hu.hu" mCC = "ő@hu.hu" mBCC = "meg_ő_is@hu.hu" mSubject = "értesítés" mText = "Figyelj, Jóska! Nézd már meg azt a gázcsapot, mert reggel óta fütyül. Addig én rágyújtok. Zoli"
s = "mailto:" & mTo _ & "?CC=" & mCC _ & "&BCC=" & mBCC _ & "&Subject=" & mSubject _ & "&Body=" & mText ThisWorkbook.FollowHyperlink s End Sub
Ha nem megy, valaki segítsen neki, mert most egy darabig nem fogok ráérni erre.
Bocs ha nem voltam egyértelmű, nem vagyok jártas a témában.
Szóval egy sina excel munkafüzetről van szó amiben még csak függvények sincsenek.
Az volna a lényeg hogy ha valamelyik mezőt átírom és rámentek akkor arról kapjon infót néhány ember automatikusan mert nekik ez alapján kell további feladatokat végezni.
Hogy ez mit jelent "Lotus object modellje" arról sajnos fogalmam sincs.
Ha kell, viszonylag gyorsan össze tudok ütni egy makrót a régi vágyad teljesítésére. Viszont elvi probléma, hogy a makró (Workbook_Open eseményre ízzítva) csak akkor fog lefutni, ha a felhasználó engedélyezi a makrókat. (Vagy a biztonsági szint olyan alacsony, hogy az Excel nem kérdez rá.)
Szóval egy adatbázisban (access? SQL?) változás történik és te Excelből akarod futtatni a kódot, ami a Lotus levelezőt beizzítja és küld egy üzenetet?
Nem lehet, hogy nem adatbázisok van, hanem excel munkafüzeted? Mert akkor az Excelnek van értelme.
Megoldani (ha workbook) biztos lehet, csak tudni kell, hogy milyen a Lotus object modellje, amit én nem tudok.
Egyébként vigyázzni kell mit kér az ember, mert pld a volatile függvények nagyon gyakran (vö: mindíg) változnak, szóval fontos azt is definiálni, hogy mit tekintesz változásnak. Hamar betelhet az a Lotus e-mailfiók, ha minden Now() függvény küld egy e-mail, amikor update-elődik...
Más:
Nekem egyébként régi vágyam egy olyan kód írása, ami ha kinyitják az őt tartalmazó workbook-ot, küld egy e-mailt (Outlook) egy fix e-mailcímre, úgy, hogy a workbook kinyitója nem látja az e-mail küldést. Sose jutottam el odáig, hogy ilyen mélységben lenyomozzam az Outlook object modellt.
Ezzel a módszerrel nyomon tudnám követni, hogy ki-kinek adja át az általam elkészített workbook-okat.
Délelőtt kipróbáltam, egész pofás lett az eredmény. :)
Azzal vajon mit kezd, ha a címet nem tudja értelmezni? Mondjuk "Kossuth L.u.4." a string vége... Gondolom a település közepét lövi be... No, majd kitesztelem, ha odajutok. :)
Nálam mutat. Ha Firefox - NoScript kombót használsz, akkor engedélyezni kell a google.com és a gstatic.com számára a szkripteket.
"Eszembe jut a régi vicc..."
Nekem meg az jutott eszembe, hogy ha minden útvonaltervező más távolságot ad meg ugyanarra a viszonylatra, akkor biztosan van közöttük költségelszámolás szempontjából optimális verzió :)