Excel makró futtatás eltérő táblákban

Excel makró futtatás eltérő táblákban
2020-12-22T11:07:18+01:00
2020-12-23T23:43:18+01:00
2022-12-06T16:20:42+01:00
Kitty69
Sziasztok!

Van egy egyszerű makróm, ami egy táblában van, de egy másik táblán végez módosítást.
Most szeretném másnál is lefuttatni, de a másik gépen, a file neve más.
Segítsetek abban, hogy tudom azt alérni, hogy a makro ne file névre hivatkozzon, hanem a másik megnyitott excelre. Egyszerűen nem találom rá a megoldást.

Ez a mostani makro:

Sub frissitesv1() ' ' frissitesv1 Makró ' ' Windows("munka_file.xlsm").Activate Application.Run "'munka_fila.xlsm'!LapFeloldas" Application.Run "'munka_file.xlsm'!NezetekBeallitasa" Windows("frissítő v1.xlsm").Activate End Sub
Tudok a munka_file.xlsm helyett a "másik nyitott excel"-re hivatkozni?

Köszönöm!
Mutasd a teljes hozzászólást!
Szia!

Kicsit elbeszélünk egymás mellett most szerintem.
A makrók a védett munkafüzetben vannak?
És abban a munkafüzetben szeretnél még további formázásokat?
Akkor azt a munkafüzetet kell a makró futása előtt aktíválni, pl.

wbk.Activate
a makró meghívása előtt.
Üdv.
Mutasd a teljes hozzászólást!

  • Szia!
    A másik munkafüzetet (vagy a nevét) be kell tenned egy változóba.
    A megnyitott munkafüzeteket a Workbooks gyűjtemény tartalmazza, ezek között az index számával vagy a munkafüzet nevével válogathatsz.

    Dim wbk as Workbook Set wbk=Workbooks(1) ' az első munkafüzetet rendeli a wbk változóhoz Set wbk=Workbooks("munka_file.xlsm") ' ha név szerint ismered A meghívása pedig: Application.Run wbk.Name & "!LapFeloldas"
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia!

    Lefuttatja az elsőként megnyitott tábla makróját, de nem abban a táblában. Azaz nem az elsőként megnyitott táblában, hanem a frissítő táblában.

    Tehát nem vált át az első táblára.
    Mutasd a teljes hozzászólást!
  • Szia!
    Én csak a meghívást mutattam be.
    Arról neked kell gondoskodni, hogy a megfelelő tábla legyen aktív amikor a makró fut. Illetve a munkafüzetnek nem is kell aktívnak lennie, csak megfelelő hivatkozások kellenek.
    A kérdés az, hogy mi van az általad futtatni kívánt makrókban, milyen hivatkozásokat használ.
    Jó lenne látni, kérlek mutasd meg azokat is.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Abban a táblában az egyik makró feloldja a lapvédelmet, a másik pedig átrendezi a cellákat.
    De ezeket nem tudom bemásolni, mert azok védettek. Szerkeszteni nem tudom megnyitni.
    Még szeretném néhány formázással kiegészíteni, de addig nem akarom, amíg nem tudom megoldani, hogy abban a táblában fusson le a makró. :(
    Mutasd a teljes hozzászólást!
  • Szia!

    Kicsit elbeszélünk egymás mellett most szerintem.
    A makrók a védett munkafüzetben vannak?
    És abban a munkafüzetben szeretnél még további formázásokat?
    Akkor azt a munkafüzetet kell a makró futása előtt aktíválni, pl.

    wbk.Activate
    a makró meghívása előtt.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Szia Kitty69!

    Nem tudom, hogy miért nem akarod a fájl nevét használni, de ha már így van, akkor használhatod helyette a Munkafüzet indexét is. Valahogy úgy, ahogy Fferi korábban javasolta - egy kis módosítással...
    Sub Munkafüzetek_listája() Dim WorkRange As Range On Error Resume Next Set WorkRange = Application.Selection 'Set WorkRng = WorkRng.Range("A1") 'xNum1 = Application.Workbooks.Count 'For i = 1 To xNum1 ' WorkRng.Offset(i - 1, 0).Value = Application.Workbooks(i).Name 'Next Dim wbk As Workbook Set wbk = Workbooks(3) wbk.Activate MsgBox "1" Set wbk = Workbooks(2) wbk.Activate End Sub
    Próbáld ki a fenti kódot! Figyeld meg, hogy ebben a formában mi történik , ... és ha a kikommentelt sorokat is végrehajtatod! Próbáld a saját igényedre igazítani!

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd