Telefonszámunk: 1-472-0679

[Resolved] Autómatikus makró indítása

Kezdőlap Fórumok Excel programozás [Resolved] Autómatikus makró indítása

Topic Resolution: Resolved

Ennek a témakörnek tartalma 3 hozzászólás, 3 résztvevő. Utolsó frissítés:  verax 2 hónapja, 1 hét telt el.

4 bejegyzés megtekintése - 1-4 / 4
  • Szerző
    Bejegyzés
  • #8048

    Nagymedve
    Felhasználó

    Sziasztok!
    Mi lehet az oka, hogy a “Module1” be probléma nélkül futó makró a ThisWorkbook-ba nem fut, hibaüzenetet ír ki.
    Köszönöm

    #8049

    horvimi
    Adminisztrátor

    Szia!

    Talán tudunk segíteni, ha látjuk.
    – A makrót
    – Az üzenetet

    Imre

    #8050

    Nagymedve
    Felhasználó

    Szia!

    Természetesen, csak elsőre nem akartam …

    Private Sub workbook_open()

    Windows(“CONT_HALE_kiadott_feladatok.xlsx”).Activate
    Cells.Select
    Selection.Copy
    Windows(“penzum.xlsm”).Activate
    Sheets(“Reggeli legyűjtés”).Select
    Range(“A1”).Select
    ActiveSheet.Paste

    Sheets(“Reggeli legyűjtés”).Select
    Columns(“B:B”).Select
    Selection.TextToColumns Destination:=Range(“B1”), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True
    Columns(“J:J”).Select
    Selection.TextToColumns Destination:=Range(“J1”), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

    Cells.Select
    ActiveWorkbook.Worksheets(“Reggeli legyűjtés”).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(“Reggeli legyűjtés”).Sort.SortFields.Add2 Key:=Range( _
    “J2:J9999”), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    ActiveWorkbook.Worksheets(“Reggeli legyűjtés”).Sort.SortFields.Add2 Key:=Range( _
    “M2:M9999”), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets(“Reggeli legyűjtés”).Sort
    .SetRange Range(“A1:N9999”)
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    Range(“A1”).Select
    Sheets(“Munka1”).Select

    End Sub

    A hibaüzenet pedig: Run-time error’9 Subscript out of range

    Ja és kipróbáltam a windows/sheet helyett a workbooks / worksheets verziót is. Az se jó.
    A feladat egy adatállomány másolása egyik munkafüzetből a másikba majd rendezése. Az elakadás minden esetben a munkafüzet / lap váltáskor van.

    Köszi

    #8051

    verax
    Felhasználó

    Szia Nagymedve!
    A ThisWorkbook kódlapjáról csak a “this workbook’s sheets” (saját munkafüzet lapjai) érhetők el. Azért ír out of range üzenetet, mert túl akarod lépni a hatásköröd (saját munkafüzet lapja helyett idegen, külső munkafüzet munkalapjára hivatkozol).
    Ez a korlátozás a modulokban elhelyezett kódokra nem vonatkozik, ezért lehetséges abban a környezetben a probléma mentes futás.
    Azt a szándékot, hogy a penzum.xlsm megnyitásakor (Open eseményre) önműködően lefusson az adat importálás, úgy is megoldhatod, hogy a ThisWorkbook kódlapjára csak egy, másik makrót meghívó eljárást helyezel:

    Private sub Workbook_open
    Call Aatgyujtes
    End sub

    és az adatimportot és rendszerezést végző makrót a Modullapon írod meg.

    Sub Adatgyujtes()

    End Sub

    üdvözlettel
    verax

4 bejegyzés megtekintése - 1-4 / 4

Be kell jelentkezni a hozzászóláshoz.