Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 Função VBA para Somar em Tabela

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Função VBA para Somar em Tabela    Ter Out 08, 2013 1:12 am

Intervalo de dados: A5:J1000 .  
Preciso que, quando a coluna C (C5:C1000) for Igual à coluna B (B5:B1000); a Fase da coluna E (E5:1000) seja igual a Liberado ("Liberado").
Em seguida, preciso que a tabela da Célula M4 até M7 receba os valores equivalentes de G5 até J5, colocando o Hífen (-) na célula.
No exemplo anexo, G5 era 1, H5 era 2, I5 era 3 e J5 era 4. Na tabela M4 até M7 vai somando os valores correspondentes de G5:G1000.  
Gostaria ainda que, caso a Linha que já contenha a Fase Liberado seja deletada, que o valor seja subtraido de M4 a M7.

Tentei em outros foruns, mas sem ainda não consegui.

Obs: não tenho permissão para postar links.

Grato,
Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qua Out 09, 2013 1:22 am

Boa noite!!!

Já postou em [color=#3333ff]Excel Avançado/VBA[/color],você precisa disso só em VBA??

Para postar seu arquivo modelo, após se cadastrar em site gratuito, poste o link aqui.

Veja como burla o sistema do site.
*w*w*w.sendspace.c*o*m


Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: http://www.4shared.com/file/uYCkO2wV/Somar_Tabela.html   Qua Out 09, 2013 5:48 am

Alexandre,

Não precisa ser só em VBA. Se conhecer outra maneira, favor me ajudar.

Publiquei no 4shared.

Grato,
Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qui Out 10, 2013 7:17 pm

Boa tarde!!!

Vamos por partes...
Quando você diz que
quando a coluna C (C5:C1000) for Igual à coluna B (B5:B1000) escreveu:
Significa que realmente que a coluna ou...

Código:
Cliente   Valor   Liberado   Modalidade   Fase
Fulano   5000   5000   x   Liberado
João   10000   0   y   Estudo
Maria   10000   0   y   Inicial
José   456   456   y   Liberado

Veja que das duas colunas as células (B5 e C5), (B8 e C8) são iguais portanto E5 e E8 estão marcados como "Liberados"
Seria isso confused confused 
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Somar Tabela   Sex Out 11, 2013 2:12 am

Para facilitar o entendimento, coloquei o endereço de planilha para 4shared abaixo:
É só copiar e colar.
No seu exemplo, os valores de G5 até J5 e os valores de G8 até J8 devem SER SOMADOS em
M4 até M7, pois E5 e E8 estão Iguais a "Liberado".

4shared.com/file/uYCkO2wV/Somar_Tabela.html

Grato,
Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Sex Out 11, 2013 7:03 pm

Boa tarde!!

Foi justamente baseado em seu arquivo que citei o exemplo anterior.

Leia minha postagem anterior e tente me responder o que realmente precisa fazer coluna.

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Re: Função VBA para Somar em Tabela    Sab Out 12, 2013 1:48 am

Ok. Agora entendi.
É o seguinte:

Quando o valor de B5 for igual ao Valor de C5, então E5 deve ser Igual a liberado,
Caso contrário, E5 deve ser Igual a Vazio. Em seguida, preciso que a tabela da Célula
M4 até M7 receba os valores equivalentes de G5 até J5, colocando o Hífen (-) na célula.

Quando o valor de B6 for igual ao Valor de C6, então E6 deve ser Igual a liberado,
Caso contrário, E6 deve ser Igual a Vazio. Em seguida, preciso que a tabela da Célula
M4 até M7 receba os valores equivalentes de G6 até J6, colocando o Hífen (-) na célula.

Tudo isso até a linha 1000.

Espero sua ajuda,

Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Dom Out 13, 2013 2:20 am

Boa noite!!

Caso queira por formula então em E5 use a seguinte formula
Código:
=SE(OU(B5="";C5="");"";SE(B5=C5;"Liberado";""))
, depois arraste para baixo.

Quanto a segunda dúvida eu não a entendi.drunken 

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Re: Função VBA para Somar em Tabela    Dom Out 13, 2013 3:10 am

Por fórmula não dá pois a coluna E (Fase) vai conter valores (como no exemplo que anexei no link: Estudo, Inicial, e Etc...)...

O segundo pedido é o seguinte:

Quando E5 for igual a "Liberado", preciso que a tabela da Célula M4 até M7 receba os valores equivalentes de G5 até J5, colocando o Hífen (-) na célula.
No exemplo que mandei, G5 era 1, H5 era 2, I5 era 3 e J5 era 4.
Na tabela M4 até M7 vai somando os valores correspondentes de G5:G1000.

Gostaria ainda que, caso a Linha que contenha a Fase Liberado seja deletada, que o valor seja subtraido de M4 a M7, pois a Fase não será mais "Liberado".

Grato,
Pedro

Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Dom Out 13, 2013 3:58 pm

Bom dia!!!

Eu mudei de formula para VBA, será melhor.

Cole os dois códigos em módulo, depois execute-o.

Código:
Sub CompararDuasColunasCriterio()
'Compara os dados de duas colunas, caso igual, escreve em outra coluna o valor "Liberado"
    Dim i As Long, n As Long
    n = Application.Max(Range("B65536").End(xlUp).Row, Range("C65536").End(xlUp).Row)
    For i = 4 To n
        If Range("B" & i).Value = Range("C" & i).Value Then Range("E" & i).Value = "Liberado"
    Next i
    Call ifen
End Sub

Sub ifen()
Dim LastRow As Long
'Filtra as células baseado no critério "Liberado"
'Coloca ifen nas células das colunas G:J
    With Worksheets("Plan1")
        .AutoFilterMode = False
        .Range("A4:J4").AutoFilter
        .UsedRange.AutoFilter
        .UsedRange.AutoFilter field:=5, Criteria1:="Liberado"
          LastRow = .Range("G" & .Rows.Count).End(xlUp).Row
        .Range("G2:J" & LastRow).SpecialCells(xlCellTypeVisible).Select
    End With
    Selection = "-"
End Sub

Após seus teste, caso não seja isso simule um exemplo manual.

Att:rabbit: 
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Re: Função VBA para Somar em Tabela    Dom Out 13, 2013 6:38 pm

Alexandre,

Estamos quase finalizando. Baixe a nova planilha em:

4shared.com/file/RsLVVJya/Somar_Tabela_Teste.html

Faça o teste que coloquei em Vermelho e coloquei uma
demanda pra voce em Azul.

Muito obrigado pela paciencia.
Grato,
Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Seg Out 14, 2013 11:35 pm

Boa tarde!!

Eu ainda não tive tempo, enquanto isso tente adaptar...
Código:
Option Compare Text
'Ponha esse código dentro do módulo de planilha
Dim PreviousValue

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
Call Alert_msg
        If PreviousValue = "OK" Then
    If Target.Value <> PreviousValue Then
  '
 
      MsgBox " Atençaõ ao deletar esses dados"
           
    End If
            End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    PreviousValue = Target.Value
End Sub
Código:
Sub Alert_msg()
  'Ponha esse código dentro de um módulo
Range("E1:E1000").Validation.Delete
  For Each cell In Range("E1:E1000")
 
  If cell.Value = "OK" Then
  cell.End(xlToRight).Select
  cell.End(xlToLeft).Select

    Selection.Resize(1, 15).Select

      With Selection.Validation
        .Delete
        .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
        :=xlBetween
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = "Cuidado ao deletar"
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
       
    End With
   
    End If
   
    Next cell
End Sub
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Ter Out 15, 2013 4:36 pm

Bom dia!!

Uma pequena melhora....tente adaptar
Código:
Option Explicit

Dim varPreviousValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
   
    On Error Resume Next
        If Target.Column <= 10 Then
            If Range("E" & Target.Row) = "OK" Then
                If Target.Value <> varPreviousValue Then
                    MsgBox "Cuidado ao deletar essa informação baseado em E" & Target.Row & ".", vbExclamation, "AleVBA"
                    With Application
                        .ScreenUpdating = False
                        .EnableEvents = False
                        .Undo
                        .EnableEvents = True
                        .ScreenUpdating = True
                    End With
                End If
            End If
        End If
    On Error GoTo 0
   
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   
    varPreviousValue = Target.Value
   
End Sub
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qui Out 17, 2013 1:23 am


Ainda não consegui.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qui Out 17, 2013 4:40 am

Boa noite!!

Não conseguiu?...o que aconteceu, gerou erro, não ocorreu ação alguma, seja mais claro!

Tentou minha ultima sugestão?

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
pedrobb



Mensagens : 10
Data de inscrição : 06/10/2013

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qui Out 17, 2013 5:33 am

Nada aconteceu.
Coloquei as funções em Modulo1 e também na Plan1.
Talvez tenha conflito com a outra Sub Worksheet_Change(ByVal Target As Range).

Grato,
Pedro
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Função VBA para Somar em Tabela    Qui Out 17, 2013 5:58 pm

Bom dia!!

Não pode haver dois Worksheet_Change, e também deverá ser adaptado!!!

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: Função VBA para Somar em Tabela    Hoje à(s) 5:16 am

Voltar ao Topo Ir em baixo
 
Função VBA para Somar em Tabela
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Código HTML para adicionar uma tabela
» [GM 4.0 ou 4.3] Funções extendidas para manipulação de cores.
» Função HTML para modificar tópicos
» Função postar para ver tal código ou mensagem
» Bloqueando tecla ctrl

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: