Keresés

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

  • Fferi50

    Topikgazda

    válasz nordican #33959 üzenetére

    Szia!

    Ez soha nem fog a makrók között megjelenni - és nem is kell neki - mivel eseménykezelés paraméterekkel.

    Amit írtál, az minden esetben az első sor magasságát fogja automatikusan állítani, amikor a munkalapon változtattál valamit - de ez nyilván felesleges minden alkalommal. Ezért írtam, hogy a Change eseményben kell megvizsgálni, hogy szükséges-e a sormagasság állítása (csak nem tűnt ki a hozzászólásból rendesen):
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Union(Range("A1"), Range("K1"))) Is Nothing Then Makró1
    'ide sorold fel az Union függvényen belül azokat a cellákat, ahol listád lesz.
    End Sub

    A meghívott makróba pedig beleteszed az összes olyan munkalapot, ahol változtatni kell:
    Sub Makró1()
    Sheets("Munka1").Range("A1").Rows.AutoFit
    Sheets("Munka2").Range("A1").Rows.AutoFit
    Sheets("Munka1").Range("K1").Rows.AutoFit
    Sheets("Munka2").Range("K1").Rows.AutoFit
    'és így tovább, minden lapra és cellára
    End Sub

    Tehát két részből áll a folyamat. Az első rész a Change eseményben van, ami megvizsgálja, kell-e állítani sormagasságot, ha igen, meghívja a második részt (makró1), ami ténylegesen elvégzi az állításokat.

    Üdv.

  • poffsoft

    veterán

    válasz nordican #33959 üzenetére

    nem is .
    ez egy lap eseményhez rendelt makró.
    vagyis, minden alkalommal, ha a munkalapon megváltoztatod valamelyik cella tartalmát, automatikusan lefut.
    Mondjuk én a target.rows.autofitet használnám, vagyis annak a sornak a magasságát állítani, amelyikben éppen szerkesztettél.
    ha ugyanezen a címen kell igazítanod a másik lapon, akkor még beszúrnám:
    sheets("Munka2").range(target.address).rows.autofit

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

Hirdetés