Blog Archive

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
2005-03-28



Como se pode verificar, ao utilizar-se a Função para dar o Total, pode mencionar-se o Range que inclui os subtotais, porque estes são, pura e simplesmente, ignorados!
2005-03-23


Para preencher uma sequência numérica,

seq4

programaticamente, podem utilizar-se formulários:







O Código:

Sub Sequencia()
'
'
    Dim x, y, z, a, b

    On Error GoTo Sai
    x = InputBox(Prompt:="Digite a 1ª célula")
    y = InputBox(Prompt:="Digite a última célula")
    a = InputBox(Prompt:="Digite o primeiro nº")
    b = "" & x & ""
    z = "" & x & ":" & y & ""
    Range(b).Select
    Range(b) = a
    Selection.AutoFill Destination:=Range(z), Type:=xlFillSeries
    Range(z).Select
    Selection.Font.Bold = True
    Range(b).Select
Sai:
End Sub



Código para o Botão de Comando:

Private Sub CommandButton1_Click()
    Run "Sequencia"
End Sub
2005-03-17
Há uns tempos atrás, apresentei algum código relacionado com a inserção de comentários em determinadas células.


Hoje, apresento mais uma peça de Código, vista em Office Tips and Hints Blog que, pelo seu interesse aqui deixo e que funciona para a célula previamente seleccionada :



O Código:

Sub InsereComentario()
    Dim cell As Range
    On Error Resume Next
    Selection.ClearComments
    On Error GoTo 0
    For Each cell In Intersect(Selection, ActiveSheet.UsedRange)
        If cell.Formula <> "" Then
            cell.AddComment
            cell.Comment.Visible = False
            On Error Resume Next
            cell.Comment.Text Text:=" Address:  " & cell.Address(0, 0) & Chr(10) & _
                                    " Value:  " & cell.Value & Chr(10) & _
                                    " Format:  " & cell.NumberFormat & Chr(10) & _
                                    " Formula: " & cell.Formula
            On Error GoTo 0
        End If
    Next cell
End Sub
2005-03-16
Se pretendermos inserir valores ou texto em determinadas células pré-definidas, para uma maior comodidade, podemos colori-las, de modo a saber que se encontram vazias e, por isso, mais fáceis de serem identificadas. Tomemos o exemplo:



Depois de inserirmos valores, as células deixam de estar coloridas, voltando a ter coloração se ficarem novamente vazias:



O método, é a utilização da Formatação Condicional, no exemplo nas células A1,B2,C3 e D4, associada à função ISBLANK() ou É.CÉL.VAZIA(), como mostra a figura seguinte, ou seja ISBLANK(A1), ISBLANK(B2) etc.:


2005-03-14
Se pretendermos evidenciar as células que contêm valores duplicados (ver exemplo):



pode utilizar-se uma macro, que deverá ser executada depois de "marcar" o Range de células pretendido:



O Código:

Sub ColorDupRows()
    Dim rngSrc As Range
    Dim NumRows As Integer
    Dim ThisRow As Integer
    Dim ThatRow As Integer
    Dim ThisCol As Integer
    Dim RightCol As Integer
    Dim J As Integer, K As Integer

    Application.ScreenUpdating = False
    Set rngSrc = ActiveSheet.Range(ActiveWindow.Selection.Address)

    NumRows = rngSrc.Rows.Count
    ThisRow = rngSrc.Row
    ThatRow = ThisRow + NumRows - 1
    ThisCol = rngSrc.Column
    RightCol = ThisCol + rngSrc.Columns.Count - 1

    For J = ThisRow To (ThatRow - 1)
        If Cells(J, ThisCol) > "" Then
            For K = (J + 1) To ThatRow
                If Cells(J, ThisCol) = Cells(K, ThisCol) Then
                    With Cells(K, ThisCol).Interior
                        .ColorIndex = 20
                        .Pattern = xlSolid
                    End With

                End If
            Next K
        End If
    Next J

    Application.ScreenUpdating = True
End Sub

Se pressionarmos a tecla de função F3, aparece, na célula pretendida, o resultado do Código a que a tecla está associada ( no exemplo, "Blog EXCELer"):



O Código:

Public Ops As String

Sub Auto_Open()

    Application.DisplayAlerts = False
    Application.OnKey "{F3}", "InsereNome"

End Sub

Sub InsereNome()

    Ops = Nome()
    ActiveCell = Ops
    
End Sub

Public Function Nome()

    Nome = "Blog EXCELer"
    
End Function

2005-03-10
Se quisermos ver o conteúdo de uma célula numa outra célula, como por exemplo, ver na célula "A1" o valor contido na célula "C4" (ou "C5","C1",etc):



podemos utilizar o procedimento que a seguir transcrevo:

Código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("A1") = ActiveCell.Value
End Sub


Atenção: clicar com o botão direito do rato no tabulador da folha, escolher "Ver Código" e na folha em branco do Editor de VBA colocar o procedimento descrito. Fechar o Editor e experimentar.
2005-03-09
Por vezes, podemos ter a necessidade de utilizar um formato novo no cabeçalho de uma impressão, como, por exemplo, a referência à data actual:



O Código:

Sub Muda_Formato_Data()
    ActiveSheet.PageSetup.CenterHeader = Format(Now, "DD MMMM, YYYY")
End Sub
2005-03-05
Dick Kusleika (Daily Dose of Excel) mostrou, há algum tempo num newsgroup de excel, como colocar uma linha no rodapé, para impressão:

Sub LinhaRodape()

    Dim sh As Worksheet
    Dim wf As WorksheetFunction

    Set sh = ActiveSheet
    Set wf = Application.WorksheetFunction

    sh.PageSetup.LeftFooter = wf.Rept("_", 88) & _
                              vbLf & sh.PageSetup.LeftFooter

End Sub


NOTA - o valor 88 é modificável pelo tamanho da zona de impressão.