magyarpityu Creative Commons License 2008.07.24 0 0 7613
Lehet, de más megoldásra jöttem rá :))

A makróim többnyire a ThisWorkbook.Activate utasítással kezdődnek, pont azért, hogy mikor pl. egy Excel alá behúzott szövegfile-t nézegetek, akkor is le tudjam futtatni a makrót, ami ilyenkor nem az aktuális file-ban dolgozik, hanem a háttérben üldögélő Excel táblázatban, és az eredmények sem az aktuális file-ba kerülnek, hanem a helyükre. Erre akkor van szükség, ha a makróhoz olyan adat kell, ami csak egy adott helyen van, azokat más file-ban hiába is keresné, vagy ha kifejezetten abba a file-ba kell az eredményeket beírni, amiben a makró van. Ez addig rendben is volt, amíg a makrókat az Excel menüből indítottam, mert ott eleve filenév.xls!makronév formában érhetők el a nem aktuális munkafüzetek makrói. Így ha több megnyitott munkafüzetben van ugyanolyan nevű makró, akkor azok eleve nem keveredhetnek össze, mert azonos nevű file-ok úgysem lehetnek egyszerre nyitva.

Ha tehát menüből olyan makrót szerenék indítani, ami kötődik az adott file-hoz (azaz nem olyan, hogy pl. beszínezi az aktuális cellát), akkor meg kell mondani, melyik példány fusson. Átírom a menüt létrehozó makrót úgy, hogy vizsgálja meg, van-e már kint ilyen menü, ha igen, akkor ne fejezze be a kódot (ahogy most van megírva), hanem az adott menüpont popup legördülő menü legyen, ahol a futó példányok nevei lesznek felsorolva, és onnan kell kiválasztanom, hogy melyik file-ba szeretnék dolgozni. Mikor elkezdtem beírni a hozzászólást, még más ötletem volt, ezt most találtam ki, remek móka lesz megírni, köszi az együtt gondolkodást! :))

Előzmény: Törölt nick (7612)