Pergunte aqui
0

Cálculo automático por Macro sem fórmula na célula.

perguntadas 2015-11-30 02:32:23 +0100

updated 2016-02-16 01:29:20 +0100

Vamos supor que eu tenha uma tabela com colunas A , B e C. As colunas A e B, irão receber dados e C, por exemplo, é a soma de A + B, se ambos forem preenchidos.

Pergunta: Existe alguma maneira de uma Macro preencher a célula Cn se dados forem preenchidos em An e Bn, e Cx se Ax e Bx forem preenchidos, etc.

Sei que posso por a fórmula para o cálculo, porém gostaria de deixar a planilha limpa com aspecto mais elegante sem ter que definir o tamanho da tabela, com a repetição da fórmula em todas as linhas.

Isto é possível ?

Creio que o Grafeno tem alguma dica!

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

@Grafeno, bom dia Gostaria de um exemplo de como fazer uma macro com funções (não escritas - poderia ser uma soma) arquivadas em uma célula. Obrigado/Rosano

imagem do gravatar de RosanoRosano ( 2018-05-04 15:49:29 +0100 )editar

@Rosano, abra uma pergunta detalhando o que deseja. O Ask funciona por pergunta/resposta.Quando uma questão é respondida e marcada como aceita, ela está encerrada.

imagem do gravatar de GrafenoGrafeno ( 2018-05-05 18:49:43 +0100 )editar

Obrigado, @Grafeno.

imagem do gravatar de RosanoRosano ( 2018-05-10 23:25:52 +0100 )editar

1 Resposta

2

respondidas 2015-12-01 21:28:03 +0100

imagem do gravatar de Grafeno

updated 2015-12-01 21:29:18 +0100

Boa tarde,


Obrigado pela lembrança @Gilberto Schiavinatto!

No seu caso, acredito que a macro abaixo associada ao evento de planilha "Conteúdo alterado" resolva a questão.

  • Para associar uma macro salva na planilha ao evento: botão direito do mouse sobre a aba da planilha >>> "Eventos de planilha..." >>> evento "Conteúdo alterado" >>> botão "Macro".


.

REM  *****  BASIC  *****

REM  >>> Evento de Planilha => Conteúdo Alterado <<<
Sub Plan1_ConteudoAlterado( oCelula )
Dim oPlan as Object
Dim nLin as Long, nCol as Long
Dim vCel As Double, vCelA As Double, vCelB As Double

    ' Sair se não for uma célula
    If oCelula.ImplementationName <> "ScCellObj" Then Exit Sub

    nLin = oCelula.CellAddress.Row
    nCol = oCelula.CellAddress.Column
    vCel = oCelula.Value
    oPlan = oCelula.getSpreadsheet

    ' Sair se a cél. estiver na linha 1 ou
    ' se o valor da cél. for 0
    If vCel = 0 or nLin = 0 Then Exit Sub

    ' Verificar se a cél. está na col. A 
    If nCol = 0 Then
        vCelB = oPlan.getCellByPosition( 1,nLin ).Value

        ' Inserir a soma na col. C se a col. B não estiver vazia    
        If vCelB <> 0 Then
            oPlan.getCellByPosition( 2,nLin ).Value = vCel + vCelB
        End Sub
    End If 

    ' Verificar se a cél. está na col. B 
    If nCol = 1 Then
        vCelA = oPlan.getCellByPosition( 0,nLin ).Value

        ' Inserir a soma na col. C se a col. A não estiver vazia        
        If vCelA <> 0 Then
            oPlan.getCellByPosition( 2,nLin ).Value = vCelA + vCel
        End Sub
    End If 
End Sub


Atte,
Grafeno

editar assinalar como ofensivo Excluir Link mais

Comentários

Ok @Grafeno, sabia que podia contar contigo. Vou tentar adaptar ao projeto, se vingar compartilho contigo.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2015-12-02 23:46:35 +0100 )editar

Caro @Grafeno, como fazer cálculo automático por Macro com fórmula (não escrita em forma de macro) arquivada em célula. Poderia dar um exemplo de uma macro de estoque, onde haverá entrada e saída* de determinado produto (ABC). Por ser leigo*, não sei escrever macro.

@Grafeno, agradeço-lhe à oportunidade deste contacto.

Rosano

imagem do gravatar de RosanoRosano ( 2018-05-10 20:19:09 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2015-11-30 02:32:23 +0100

Lidas: 842 vezes

Última atualização: Feb 16 '16