Blog Archive
-
▼
2005
(103)
-
▼
março
(9)
- Excel: Utilização da Função SUBTOTAL()
- VBA: Sequencia numerica
- VBA: Definir conteúdo nos Comentários
- Excel: Formatação Condicional
- VBA: Evidenciar células com valores duplicados
- VBE: Associar uma tecla de Função a um procedimento
- VBA: Ler o conteúdo da célula onde se posiciona o ...
- VBA: Personalizar o formato de uma data numa impre...
- VBA: Linha em Rodapé para impressão
-
▼
março
(9)
About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2005-03-28
Excel: Utilização da Função SUBTOTAL()
2:48 da manhã |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
VBA: Sequencia numerica
3:03 da manhã |
Publicada por
JRod - PORTUGAL |
Editar mensagem
Para preencher uma sequência numérica,
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
VBA: Definir conteúdo nos Comentários
8:40 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
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
Excel: Formatação Condicional
10:11 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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.:
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
VBA: Evidenciar células com valores duplicados
11:47 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
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
VBE: Associar uma tecla de Função a um procedimento
2:41 da manhã |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
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
VBA: Ler o conteúdo da célula onde se posiciona o cursor
5:55 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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.
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
VBA: Personalizar o formato de uma data numa impressão
7:06 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
O Código:
Sub Muda_Formato_Data()
ActiveSheet.PageSetup.CenterHeader = Format(Now, "DD MMMM, YYYY")
End Sub
2005-03-05
VBA: Linha em Rodapé para impressão
11:37 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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.
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.
Subscrever:
Mensagens (Atom)