Power Query Course in Spanish
Thanks Thanks:  0
Likes Likes:  0
Results 1 to 5 of 5

Thread: Animation of status bar

  1. #1
    Board Regular
    Join Date
    May 2002
    Location
    Sydney, Australia
    Posts
    317
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Is there a way to animate the text that I have put into the status bar and how do i turn it off when i leave the spreadsheet?

  2. #2
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Hmm, animate it in what way? The only way you could do this would be using VBA and animating the status bar text is pretty much all it would be able to do then.

  3. #3
    Board Regular
    Join Date
    May 2002
    Location
    Sydney, Australia
    Posts
    317
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    yes using VB code is OK -by animation i mean having the text sliding in and out or flashing or similar

  4. #4
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Christchurch New Zealand
    Posts
    1,030
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    this code moves a box along the status bar
    like a percent finished
    run the sub to use it
    Function fWriteStatus(ByVal intTheCount As Integer, _
    ByVal intTheMax As Integer) As String

    Dim intCount1 As Integer
    Dim intCount2 As Integer
    ' This puts a little box moving in the taskbar
    ' First part of status bar
    fWriteStatus = " |"

    ' Now add some spaces up to the value
    ' we wish to represent
    For intCount1 = 1 To intTheCount
    fWriteStatus = fWriteStatus & Chr(32)
    Next intCount1
    ' add a box (is's a non-printing ascii
    ' character)
    fWriteStatus = fWriteStatus & Chr(2)
    ' Fill the rest of the gauge with spaces
    For intCount2 = intCount1 To intTheMax
    fWriteStatus = fWriteStatus & Chr(32)
    Next intCount2

    ' ...then add the end marker and a
    ' percentage complete figure.
    fWriteStatus = fWriteStatus & "| " _
    & Format(intTheCount / intTheMax, "0%")
    End Function

    Sub sUsage1()
    For Count = 0 To 5
    Application.StatusBar = fWriteStatus(Count, 40)
    Application.Wait Now() + TimeValue("00:00:01")
    Next
    Application.StatusBar = False
    End Sub

  5. #5
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    It's never going to flash, but this is the best you're going to get in terms of animation.

    The "Private Declare..." part needs to go at the top of the module. (the declarations section)


    Private Declare Sub Sleep Lib "kernel32" _
    (ByVal dwMilliseconds As Long)

    Public Sub animatestatusbar()

    Dim sText As String
    Dim iLength As Integer
    Dim bForwards As Boolean


    sText = "Hello"
    iLength = Len(sText) + 1
    bForwards = True

    Do
    DoEvents

    If bForwards Then
    sText = " " & sText
    Else
    sText = Right(sText, Len(sText) - 1)
    End If

    If Len(sText) > 30 Then
    bForwards = False
    End If

    If Len(sText) < iLength Then
    bForwards = True
    End If
    Sleep 300
    Application.StatusBar = sText
    Loop

    End Sub


    HTH

Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •