Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

move worksheet macro

hi everyone,

I want to move a worksheet in an excel sheet to the start position. right now it is always at the second so my worksheets are in this order:

701 , Total, 704,708 and I want it in this order Total, 701, 704, 708.

ActiveDocument.Fields("#Filiale_KBS").Select ""

    ActiveDocument.GetSheetObject("CH23").Restore

    ActiveDocument.GetSheetObject("CH23").CopyTableToClipboard true

    set XLSheet = XLDOC.Worksheets.Add

    XLSheet.Paste XLSheet.Range("A1")

    XLSheet.Cells.EntireColumn.AutoFit

    XLSheet.Name = "Gesamt"

   XLSheet.Move , XLDoc.Sheets(1)

    ActiveDocument.GetApplication.WaitForIdle

    ActiveDocument.ClearCache

this is moving the sheet total to second position and XLDoc.Sheets(0) doesnt work. does anyone have an idea?

regards,

MT

1 Solution

Accepted Solutions
Not applicable
Author

i konw, it is a little bit strange:/ it should add new sheet  on the left:/

part solution is to move the sheet

try :

XLDOC.Sheets("Gesamt").Move XLDOC.Sheets(1)

View solution in original post

5 Replies
Not applicable
Author

Could you paste whole sub function?

Not applicable
Author

sub send()

    set Filiale = ActiveDocument.Fields("#Filiale_KBS").getSelectedValues

    set XLApp = CreateObject("Excel.Application")

    set XLDOC = XLApp.Workbooks.Add 'Open ("C:\Users\p0862\Desktop\Filialen.xls")

    XLApp.Visible = True

    'Const XLPasteValues = -4163

   

       

    for i=0 to Filiale.Count -1

        'msgbox Filiale.Item(i).Text & ""

        'Filiale.Item(i).Select

        ActiveDocument.Fields("#Filiale_KBS").Select Filiale.Item(i).text

       

        ActiveDocument.GetSheetObject("CH23").Restore

        ActiveDocument.GetSheetObject("CH23").CopyTableToClipboard true

        if i => 3 then

            Set XLSheet = XLDoc.Worksheets.Add

             XLSheet.Name = Filiale.Item(i).text

             XLSheet.Move , XLDoc.Sheets(XLDoc.Worksheets.Count)

             XLSheet.Paste XLSheet.Range("A1")

            XLSheet.Cells.EntireColumn.AutoFit

            ActiveDocument.GetApplication.WaitForIdle

            ActiveDocument.ClearCache

        else

            set XLSheet = XLDOC.Worksheets("Tabelle" & (i+1))

            XLSheet.Paste XLSheet.Range("A1")

            XLSheet.Cells.EntireColumn.AutoFit

            XLSheet.Name = Filiale.Item(i).Text

            ActiveDocument.GetApplication.WaitForIdle

            ActiveDocument.ClearCache

        end if

    next

   

    ActiveDocument.Fields("#Filiale_KBS").Select ""

    ActiveDocument.GetSheetObject("CH23").Restore

    ActiveDocument.GetSheetObject("CH23").CopyTableToClipboard true

    set XLSheet = XLDOC.Worksheets.Add

    XLSheet.Paste XLSheet.Range("A1")

    XLSheet.Cells.EntireColumn.AutoFit

    XLSheet.Name = "Gesamt"

    XLSheet.Move , XLDoc.Sheets(1)

    ActiveDocument.GetApplication.WaitForIdle

    ActiveDocument.ClearCache

   

    set XLApp = Nothing

    set XLDOC = Nothing

    set XLSheet = Nothing

    'ab.close

    'objExcel.quit

    'obj.SendToExcel

end sub

Not applicable
Author

maybe thats helpfull

if i select less than 3 stores it works perfectly but if I select more than 3 stores it is always beeing shown on the second position

regards

Not applicable
Author

i konw, it is a little bit strange:/ it should add new sheet  on the left:/

part solution is to move the sheet

try :

XLDOC.Sheets("Gesamt").Move XLDOC.Sheets(1)

Not applicable
Author

hey thank you. and yes that is very strange 🙂