Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook



The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic

Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.

If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.

Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.

Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Freeze top rows of an Excel sheet (Freeze Pane)

  • Filter
  • Time
  • Show
Clear All
new posts

  • Freeze top rows of an Excel sheet (Freeze Pane)

    Hello All,
    Is there a way of freezing top rows of an Excel sheet . I am using the Alpha Excel API to create a workbook and multiple sheets . I like to freeze the headers (top 3 rows).
    Is there away of doing that from Alpha?

  • #2
    Re: Freeze top rows of an Excel sheet (Freeze Pane)

    Using ole the commands are

    xlApp.ActiveWindow.FreezePanes = .T.

    the API commands are probably similar but I haven't delved into them recently.
    There can be only one.


    • #3
      Re: Freeze top rows of an Excel sheet (Freeze Pane)

      Ask Stan or wait 2 minutes for his reply...
      Al Buchholz
      Bookwood Systems, LTD
      Weekly QReportBuilder Webinars Thursday 1 pm CST

      Occam's Razor - KISS
      Normalize till it hurts - De-normalize till it works.
      Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
      When we triage a problem it is much easier to read sample systems than to read a mind.
      "Make it as simple as possible, but not simpler."
      Albert Einstein


      • #4
        Re: Freeze top rows of an Excel sheet (Freeze Pane)

        Thanks Stan,
        I could not find any API functions or methods like the ole commands , so I think I have to reopen the file in ole after I do everything else with API.
        Thanks again,


        • #5
          Re: Freeze top rows of an Excel sheet (Freeze Pane)

          I just found out that Sheet.Split(Row,Column) in API ExcelSheet methods freezes the rows above the addressed cell.


          • #6
            Re: Freeze top rows of an Excel sheet (Freeze Pane)

            Thanks for posting back. Good work.

            Just did a bit of experimenting and for those who follow .......

            sheet.Split(2,1) 'freeze everything above row 2 and to the left of column 1 (which is nothing), so just freeze the top row
            sheet.Split(2,2) 'freeze everything above row 2 and to the left of column 2, so freeze row 1 and column 1
            There can be only one.


            • #7
              Re: Freeze top rows of an Excel sheet (Freeze Pane)

              Now that is cool and useful.
              Thank you gentlemen.
              See our Hybrid Option here;


              • #8
                Re: Freeze top rows of an Excel sheet (Freeze Pane)

                Along the same lines, Is there a way for test for the end of Excel file (EOF) while reading the cells using,Col) to read form beginning to end?
                Thanks again ,


                • #9
                  Re: Freeze top rows of an Excel sheet (Freeze Pane)

                  Again with the OLE, sorry, if you don't already have these. I don't see anything similar in the class syntax.

                  last_row = xlApp.Activecell.SpecialCells("11").Row
                  last_column = xlApp.Activecell.SpecialCells("11").Column' returns index number, not letter designation
                  There can be only one.


                  • #10
                    Re: Freeze top rows of an Excel sheet (Freeze Pane)

                    Thanks Stan, I think that's the only way.


                    • #11
                      Re: Freeze top rows of an Excel sheet (Freeze Pane)

                      Well not so fast, It turns out that Sheet.NextAvailableRow gives you last_Row+1 and Sheet.NextAvailableColumn gives you last_Column+1.


                      • #12
                        Old thread but have something to add.

                        I had been using Sheet.split to emulate Freezing a row(s) as there is not a method to do so within API ExcelSheet, but have found a way to actually Freeze any row.

                        Here is the vbs code snippet I found which will do this and more if wanted This way you can have just a Frozen row(s) with or without having a split sheet.. It creates any type of Excel file wanted from a CSV file so is not appropriate specifically for what is wanted but could be modified to be. Quite a bit has been commented out for what I needed.

                        Const xlOpenXMLWorkbook = 51 '(without macro's in 2007-2016, xlsx)
                        Const xlOpenXMLWorkbookMacroEnabled = 52 '(with or without macro's in 2007-2016, xlsm)
                        Const xlExcel12 = 50 '(Excel Binary Workbook in 2007-2016 with or without macro's, xlsb)
                        Const xlExcel8 =56 '(97-2003 format in Excel 2007-2016, xls)
                        ' Extensions for old and new files 'changing between xls and xlsx requires changing the above Constant as well
                        strExcel = "xlsx"
                        strCSV = "csv"
                        strXLS = "xls"
                        ' Set up filesystem object for usage
                        Set objFSO = CreateObject("Scripting.FileSystemObject")
                        strFolder = "C:\__Some_Folder"
                        strPath = "C:\__Some_Folder\Accounts Receivable.csv"
                        ' Access the folder to process
                        Set objFolder = objFSO.GetFolder(strFolder)
                        ' Load Excel (hidden) for conversions
                        Set objExcel = CreateObject("Excel.Application")
                        objExcel.Visible = False
                        objExcel.DisplayAlerts = False
                        ' Process all files
                        'For Each objFile In objFolder.Files
                        ' Get full path to file
                        ' strPath = objFile.Path
                        ' Only convert CSV files
                        ' If LCase(objFSO.GetExtensionName(strPath)) = LCase(strCSV) Or LCase(objFSO.GetExtensionName(strPath)) = LCase(strXLS) Then
                        ' Display to console each file being converted
                        'next will display a messagebox
                        ' Wscript.Echo "Converting """ & strPath & """"
                        ' Load CSV into Excel and save as native Excel file
                        Set objWorkbook = objExcel.Workbooks.Open(strPath, False, True)
                        strNewPath = objFSO.GetParentFolderName(strPath) & "\" & objFSO.GetBaseName(strPath) & "." & strExcel
                        'strXLS ....uses xlExcel8 constant below
                        'strExcel ....uses xlOpenXMLWorkbook constant below
                        objExcel.Rows(1).Font.Bold = TRUE
                        objExcel.Range("k2").Select 'freezes top row 1 -- takes all columns left of K and all rows above 2
                        objExcel.ActiveWindow.FreezePanes = True
                        objWorkbook.SaveAs strNewPath, xlOpenXMLWorkbook
                        'xlExcel8 ...for XLS files
                        'xlOpenXMLWorkbook ....for XLSX files
                        objWorkbook.Close False
                        Set objWorkbook = Nothing
                        ' End If
                        'Wrap up
                        Set objExcel = Nothing
                        Set objFSO = Nothing
                        It is only when we forget all our learning that we begin to know.
                        It's not what you look at that matters, it's what you see.
                        Henry David Thoreau