Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Posicionando Formas com iteração

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
luismatheusbs
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Seg Ago 17, 2020 11:46 pm

Posicionando Formas com iteração

Mensagem por luismatheusbs »

Olá Guys, Eu criei um script em VBA, de forma que em cada iteração minha forma desce uma linha para cada folha enquanto a forma abaixo sobe, criando um efeito de destaque na folha em que o usuário está. Deixo abaixo um exemplo de como seria :

Imagem

Na execução, minhas formas são alinhadas uma em cima da outra, porem no loop 2, tudo funciona corretamente

Código: Selecionar todos

Sub MenuFormatador()
    
        Dim inicio As Range
        Dim posAtual As Range
        Dim posFinal As Range
        
        Dim coorFinal_X As Double
        Dim coorFinal_Y As Double
        
        Dim estiloFocus As Shape
        Dim estiloEstatico As Shape
        
        Dim fontFocus As Shape
        Dim fontEstatico As Shape

        
        ActiveSheet.Range("O12").Select
        
    For I = 2 To 2
     
        
        'ActiveWorkbook.Worksheets(I).Select
        

        Set posAtual = Selection 'Posicao Inicial como referencia

        
        Set posFinal = posAtual.Offset(2, 0) 'Posicao abaixo, proximo item
       

        coorFinal_X = posFinal.Left 'Coordenada Horizontal
        coorFinal_Y = posFinal.Top  'Coordenada Vertical
        
        
        ' Seleciona os objetos shapes
        Set estiloEstatico = Worksheets(I).Shapes("estatico-" & I)
        Set estiloFocus = Worksheets(I).Shapes("focus")
        
        
        ' Seleciona o oibjeto Font
        Set fontFocus = Worksheets(I).Shapes("titulo-" & I - 1)
        Set fontEstatico = Worksheets(I).Shapes("titulo-" & I)
        
        ' Movimenta o Focus para baixo
        estiloFocus.Left = coorFinal_X
        estiloFocus.Top = coorFinal_Y
        
        ' Altera a cor para do destaque para estatico
        fontFocus.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(98, 114, 164)
        
        ' Movimenta o Estatico para baixo
        estiloEstatico.Top = posAtual.Top
        estiloEstatico.Left = posAtual.Left
        
        'Altera a cor para do estilo estatico (padrao) para destaque
        fontEstatico.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = RGB(248, 248, 242)
      
      ' Reseta o ponto de refencia
        posFinal.Select

     Next I

End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder