Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Reihenfolge Sheets in Array


Betrifft: Reihenfolge Sheets in Array von: Frank
Geschrieben am: 15.08.2018 18:21:36

Hallo zusammen,
weiß jemand, wie man die Reihenfolge von Sheets in einem Array bestimmen kann?

Ich habe aus einem Workbook mit ca. 20 Sheets 11 angesprochen, in einem Array zusammengefasst und als neue Datei und dann als PDF abgespeichert.

Dabei sortiert Excel die Sheets in der Reihenfolge, wie sie im Workbook liegen.

Gibt es wohl eine Möglichkeit die Reihenfolge zu ändern, ohne die Sheets im Workbook zu verschieben?

Viele Grüße

  

Betrifft: AW: Reihenfolge Sheets in Array von: ChrisL
Geschrieben am: 15.08.2018 18:25:42

Hi

Du könntest an ein zweites Array übergeben z.B.

Dim MyArray1(2) As Variant
Dim MyArray2(2) As Variant

MyArray2(0) = MyArray1(1)
MyArray2(1) = MyArray1(2)
MyArray2(2) = MyArray1(0)
Für alphabetisches Sortieren findest du fertige Scripts im Netz.

cu
Chris


  

Betrifft: AW: Reihenfolge Sheets in Array von: Frank
Geschrieben am: 15.08.2018 18:30:54

Hi Chris,

danke für den Denkanstoß. Es kann ja manchmal so einfach sein.
Setze ich morgen im Büro gleich mal um.

Besten Gruß


  

Betrifft: Das ändert nicht die Reihenfolge beim export! o.T. von: Sepp
Geschrieben am: 15.08.2018 18:46:12

 ABCDEF
1Gruß Sepp
2
3



  

Betrifft: stimmt, siehe Lösung von Sepp von: ChrisL
Geschrieben am: 15.08.2018 18:49:28

Hatte mich nur auf das Array gestürzt und den Rest überlesen :)


  

Betrifft: AW: Reihenfolge Sheets in Array von: Sepp
Geschrieben am: 15.08.2018 18:44:50

Hallo Frank,

man könnte die Blätter in eine neue Datei kopieren, sortieren, exportieren und die Datei wieder löschen.

Sub test()
  Dim varSheets As Variant, lngIndex As Long

  On Error GoTo ErrorHandler

  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .AskToUpdateLinks = False
    .DisplayAlerts = False
    .Calculation = xlCalculationManual
  End With

  'Tabellenblätter in der gewünschten Reihenfolge! 
  varSheets = Array("Tabelle4", "Tabelle2", "Tabelle1")

  Sheets(varSheets).Copy

  With ActiveWorkbook
    For lngIndex = Ubound(varSheets) To 0 Step -1
      .Sheets(varSheets(lngIndex)).Move Before:=.Sheets(1)
    Next
    .ExportAsFixedFormat xlTypePDF, "D:\Forum\test.pdf"
    .Close False
  End With

ErrorHandler:

  If Err.Number <> 0 Then
    MsgBox "Fehler in Modul3" & vbLf & vbLf & "Prozedur:" & vbTab & "test" & vbLf & _
      "Nummer:" & vbTab & Err.Number & vbLf & "Meldung:" & vbTab & Err.Description & vbLf & _
      IIf(Erl, "Zeile:" & vbTab & Erl, ""), vbExclamation, "Fehler!"
    Err.Clear
  End If

  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .AskToUpdateLinks = True
    .DisplayAlerts = True
    .Calculation = xlCalculationAutomatic
  End With

End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


 ABCDEF
1Gruß Sepp
2
3



Beiträge aus dem Excel-Forum zum Thema "Reihenfolge Sheets in Array"