Keresés

Új hozzászólás Aktív témák

  • sztanozs
    veterán

    Sziasztok!

    Egy újabb problémával találtam szemben magamat.

    A probléma az lenne, hogy egy excel dokumentumot úgy akarok megnyitni, hogy egyből a userform jelenjen meg, viszont (mivel ez nem túl nagy) a háttérben maga az extel tábla ne is látszódjon.

    A googliban kutakodva meg is találtam amire szükségem van, de sajnos nem egészen úgy történik minden ahogyan én szeretném.

    Már több megoldással is próbálkoztam de eddig csak félsikert értem el mindegyikkel.
    1.

    Private Sub Workbook_Open()

    Application.WindowState = xlMinimized
    UserForm1.Show

    End Sub

    Ebben az esetben a munkafüzet megnyitásakor az valóban a tálcára kerül, viszont a userform-al együtt.

    2.

    Private Sub CommandButton1_Click()

    Application.WindowState = xlMinimized
    UserForm1.Show

    End Sub

    Ellenben ha egy úgy van megcsinálva, hogy a munkafüzetben van egy gomb, amihez ugyan ez a kód van beírva, akkor a gombnyomásra úgy működik ahogyan kell.
    Csak ugye pont ezt szeretném elkerülni, mert semmi szükség még egy felesleges gombnyomásra.

    -----------------
    Próbáltam már magából a userform initializálásból megcsinálni, de az eredmény ugyan az mint a 2. esetben.
    Próbáltam már a userform initializálásból meghívni a kattintást, de az nem tetszett neki.
    Próbáltam már az első programkódot megcserélni, azaz előbb nyitni a userformot aztán minimalizálni, de ekkor nem történik semmi.
    Próbáltam már az első verzió után valahogyan aktiválni a munkafüzetet, de ez sem sikerült.

    Van esetleg valakinek valami használható megoldása?

    ------------------

    Lenne még egy olyan kérdésem, hogy valahogyan ki lehet e nyerni, hogy az altív munkafüzeten kívül van e még nyitva másiki munkafüzet?
    Kérdezem ezt azért, mert mondjuk egy kilépés gombnál akkor le tudnám vezérelni, hogy csak az aktív munkafüzetet zárja e be, vagy az egész excelt.
    Így elkerülhető lenne, hogy a felhasználónál nyitva lévő (és esetleg mentetlen) más munkafüzetet is bezárjak. (Az application.displayalerts direkt falsra van állítva).

    Előre is köszönöm!

    Egyrészt, ha Excel Addint csinálsz, akkor nem látszik a worksheet, de tud futni kód.
    Másrészt el tudod takni kicsibe (minimized) a worksheetet, de így is látható marad (és megszünteti a többi ablak "Maximized" állapotát
    Harmadrészt megnyitás után is át tudod rakni Add-in típusba, viszpnt úgy nem fogod tudni menteni a save gombbal, csak formról.

    Add-in-be átrakni megnyitáskor:
    Private Sub Workbook_Open()
    Me.IsAddin = True
    End Sub

    Mentést viszont kézzel kell csinálnod, mert addin típusú excel-t nem lehet xls/xlsm-be menteni, csak xla-ba. Így mentés előtt kézzel ki kell szedni az Addin property-t (ami láthatóvá teszi a sheet-et - de jól lekódolva csak a mentés idejére).

    ThisWorkbook:
    Private Sub Workbook_Open()
    Me.IsAddin = True
    Set UserForm1.App = Me
    UserForm1.Show False
    End Sub

    Public Sub WB_Save()
    Me.IsAddin = False
    Me.Save
    Me.IsAddin = True
    End Sub

    UserForm:
    Public App As Object

    Private Sub CommandButton1_Click()
    App.WB_Save
    End Sub

Új hozzászólás Aktív témák