About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2007-06-21

Já reparou que pode ver, alterar, apagar ou fazer merge de estilos, no Excel?


Vá a FORMAT | STYLE:


 

  • Tópicos relacionados:

Using Styles in Excel (I)

Using Styles in Excel (II)

Style Object

Styles Collection

2007-06-09

Normalmente, nas nossas Macros, quando pretendemos seleccionar uma Sheet, ou, por exemplo, limitar a uma área de scroll, utilizamos o seguinte Código:

Sheets("INICIO").Select
Sheets("INICIO").ScrollArea = "A1:Q31"

 

O que pode acontecer é que um utilizador, pelo facto de não ser possível proteger o tabulador que dá o nome à Sheet [que, no nosso exemplo, tem o nome "INICIO"], resolve alterar o nome do tabulador, para "FIM".

Resultado: uma mensagem de erro, porque o que o código diz, é que a folha se denomina "INICIO" e, na realidade, o que lá se encontra é o nome "FIM".

Uma maneira de obviar o problema, é resolvê-lo pela via mais simples, ou seja, "obrigar" que a folha seja seleccionada e faça o scroll limitado, independentemente do nome que o tabulador tenha. Assim, se a folha com o nome "INICIO" ou com o nome "FIM" for efectivamente a 1ª folha, então podemos utilizar, em vez de indicar o nome da folha como está acima, o seguinte [o mesmo será para as outras folhas, mudando apenas o algarismo]:

Sheet1.Select
Sheet1.ScrollArea = "A1:Q31"

 

Outra maneira, é  "obrigar" que a folha, ao ser aberta, venha a adquirir o nome que nós pretendemos inicialmente, ou seja, que fique com o nome "INICIO":

Dim tabName


Sheet1.Select
tabName = "INICIO"
ActiveSheet.Name = tabName

Sheets("INICIO").ScrollArea = "A1:Q31"

 

Por último, porque não esconder, pura e simplesmente, o(s) tabulador(es)? Assim, de certeza que já não haverá "tendências" para fazer alterações inconvenientes ;-)

O Código para pôr a barra dos tabuladores na situação de "hidden":

Private Sub Workbook_Open()
    'Tira a barra de tabuladores com os nomes das folhas...
    ActiveWindow.DisplayWorkbookTabs = False
End Sub

2007-06-06

Se pretendermos apagar linhas inteiras a partir de células vazias num determinado range, incluindo uma mensagem de alerta se, nesse range, não houver nenhuma célula vazia, podemos utilizar o seguinte código:

 

Sub FindAndDelete()

    Dim myRange As Range

    On Error Resume Next
    Set myRange = Range("A1:A100")

    If Application.CountA(myRange) = 100 Then
        MsgBox "Não existem células vazias no Range!"
    Else
        myRange.SpecialCells(xlBlanks).EntireRow.Delete
    End If

End Sub

 

  • Tópicos relacionados:

SpecialCells Method

Função CountA()