| Função VBA para Somar em Tabela | |
|
|
Autor | Mensagem |
---|
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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 | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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 | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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 | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: Re: Função VBA para Somar em Tabela Sáb 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 | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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. Att | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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
| |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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: | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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
| |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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
| |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: Re: Função VBA para Somar em Tabela Qui Out 17, 2013 1:23 am | |
| | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
pedrobb
Mensagens : 10 Data de inscrição : 06/10/2013
| Assunto: 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 | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: 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 | |
|
| |
Conteúdo patrocinado
| Assunto: Re: Função VBA para Somar em Tabela | |
| |
|
| |
| Função VBA para Somar em Tabela | |
|