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
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.