All posts by Felipe Dasi

VBA – Marcador de Linha e Coluna no Excel

Dica dada pelo colega Felipe Dasi no nosso fórum.

O código adiciona uma referência na navegação do usuário na planilha, destacando toda linha e coluna. O Excel já faz isso por padrão, mas de uma maneira bem discreta.

'MARCADOR DE LINHA COM COLUNA
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
    Dim LinhaInicio As Range
    Dim ColunaAtual As Range
    Dim MinhaLinha As Range
    Dim Linha As Long
    Dim Coluna As Long
 
    'ESTABELECE QUE AS CELULAS SERÃO COLORIDAS.
    Cells.Interior.ColorIndex = xlNone
 
    Linha = Target.Row
    Coluna = Target.Column
    'CELULA ONDE SE INICIA A LINHA COLORIDA SEMPRE NA COLUNA A
    Set LinhaInicio = Range("A" & Linha, Target)
    'PEGA A COLUNA ONDE ESTÁ (INTERSECÇÃO ENTRE LINHA E COLUNA)
    Set ColunaAtual = Range(Cells(1, Coluna), Target)
    'FOCA A INTERSECÇÃO.
    Set MinhaLinha = Union(LinhaInicio, ColunaAtual)
 
    'COR QUE QUER USAR, NO CASO A 3 É VERMELHA
    MinhaLinha.Interior.ColorIndex = 3
 
End Sub

Para ver o código em funcionamento, dê uma olhada no vídeo abaixo:

O tópico do fórum que tratou do assunto pode ser visto no link abaixo:

http://www.tomasvasquez.com.br/forum/viewtopic.php?f=16&t=1090http://www.tomasvasquez.com.br/forum/viewtopic.php?f=16&t=1090

Bom proveito!

Excel – Função SE para Cálculo de Impostos NF Serviço

Sempre me deparo com a necessidade de calcular impostos sobre NF de Serviços, por isso temos esta formula em anexo que faz o serviços total, considerando:

  1. Se o clente é Pessoa Fisica ou Juridica
  2. Se o valor é inferior a R$ 667,00 para fins de calculo do IRRF quando o cliente é Pessoa Juridica
  3. Se o valor é superior a R$ 5.000,00 para fins de calculo das CSRF de 4,65% quando o cliente é Pesso Juridica

Espero que ajude.

Download da planilha

FORMULA SE PARA CALCULO IMPOSTOS NF SERVICOS.rar

Excel – Gravando histórico de alterações na planilha

O código abaixo possibilita gravar as alterações efetuadas em uma planilha do Excel, gerando um log de alterações. Muito útil quando se quer monitorar e controlar as ações dos usuários em planilhas coorporativas.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim wsHist As Worksheet, Rng As Range
    Set wsHist = Sheets("História")
    If Sh Is wsHist Then Exit Sub
    Set Rng = wsHist.Range("A" & Rows.Count).End(xlUp).Offset(1)
    With Rng
        .Value = Now
        .Offset(, 1) = Sh.Name
        .Offset(, 2) = Target.Address
        If Target.Cells.Count > 1 Then
            .Offset(, 3) = "Valores Alterados"
        Else
            .Offset(, 3) = Target.Formula
        End If
    End With
End Sub

Este código deve ser colocar dentro do módulo EstaPasta_de_trabalho (ThisWorkbook).

Todas as alterações são registradas em uma planilha chamada História que possui a seguinte configuração:

Basta começar a navegar por outras planilhas para ver o resultado.

<< Download da planilha >>

Abraços

Felipe Dasi