Ir ao conteúdo
  • Cadastre-se

kaleo.rs

Membro Pleno
  • Posts

    20
  • Cadastrado em

  • Última visita

Tudo que kaleo.rs postou

  1. Boa tarde! Essa MACRO foi criado pelo GRANDE wzxnet7, muito bom. Ao adaptar para a minha necessidade ocorre um erro. Quando a MACRO é executada na aba PLAN1, que está ativa, ela funciona bem, porém quando ela é chamada de outra aba que está ativa, da erro no comando a baixo. Como se não encontrasse a PLAN1 na hora de carregar a matriz. matriz = w.Range(Cells(2, 5), Cells(ulinhaprodutos, 5)) mais vendidos sugestão.zip
  2. Bom dia pessoal, Preciso da ajuda, tenho uma macro que monitora uma faixa de células e preciso saber como identificar quando a macro por iniciada se foi teclado ENTER ou TAB?
  3. Boa tarde, pessoal! Existe uma forma de alterar os botões do comando vbYesNo, pois preciso questionar se o usuário quer atualizar DIA ou MÊS resultado = MsgBox("Você deseja Atualizar um Dia ou Mês inteiro?", vbYesNo, "Atualizar Valores") Ao invés de aparecer o botão com o texto SIM e o outro botão com o texto NÃO iria aparecer no lugar do SIM, o texto DIA e no lugar do NÃO aparecer o texto MÊS.
  4. Me passaram a solução. Para quem possa interessar segue abaixo. =SOMARPRODUTO(N(DIREITA($A$1:A$15;2)="P1"))
  5. Pessoal! Estou precisando saber a quantidade de linhas, conforme um determinado critério na célula. Ao usar a função CONT.SES e passar o parâmetro INTERVALO A1:A15 a função considera somente a informação completo da célula, porém o que eu preciso, é fazer uma contagem onde quero usar uma parte da informação e assim atender o parâmetro CRITÉRIO. Exemplificando: Na coluna A todas as informações são diferente, porém pode existir no final dela o conteúdo "P2" e é este critério que eu quero contar quantos existem. tentei usar a seguinte função, mas não funcionou: CONT.SES(ARRUMAR(DIREITA(A1:A15;2));"P2") Alguém teria uma solução? A REC 2222 REC 2210 REC 2215 P1 REC 2215 P2 REC 2189 REC 2216 REC 2221 REC 2201 REC 2207 P1 REC 2207 P2 REC 2209 REC 2211 REC 2218 REC 2204 REC 2176
  6. Pessoal, Estou com um problema para monitorar as alterações em determinadas células. Ao selecionar uma célula e teclar DEL o Excel limpa a célula sem ocasionar um erro na MACRO, entretanto ao selecionar mais de uma célula e teclar DEL a MACRO da um erro. Preciso as vezes limpara mais de um célula sem que a MACRO entenda que algo foi alterado neste caso. Private Sub Worksheet_Change(ByVal Faixa As Range) ' Dim monitorar As Range ' Set monitorar = Range("A4:D20") ' ' O ERRO OCORRE NA LINHA ABAIXO E MOSTRA ESSA mensagem: "ERRO EM TEMPO DE EXECUÇÃO 13: TIPOS INCOMPATIVEIS" If Faixa.Value = "" Then Exit Sub Else If Not Intersect(Faixa, monitorar) Is Nothing Then xCol = Faixa.Column If xCol = 1 Then MsgBox "Foi alterado a coluna A " ElseIf xCol = 2 Then MsgBox "Foi alterado a coluna B " ElseIf xCol = 3 Then MsgBox "Foi alterado a coluna C " ElseIf xCol = 4 Then MsgBox "Foi alterado a coluna D " End If End If End If ' End Sub ** Em anexo o arquivo Teste2.xlsm
  7. Segue em anexo as planilhas... O arquivo JANEIRO esta com a planilha DESENVE oculta. Abram o arquivo FEVEREIRO e na planilha FLUXO na célula A1 criei o botão que executa a MACRO. Quando a planilha DESENV no arquivo JANEIRO não está oculta a MACRO funciona perfeitamente, mas quando ela está oculta da o erro. 2016 - JANEIRO.zip
  8. Não funciona, ao substituir os comando eles ativam a aba DESENV da planinha FEVEREIRO e não da planilha JANEIRO. Estes comandos são para a planilha aberta, neste casa a de FEVEREIRO, pois a de JANEIRO vai estar fechada.
  9. Fiz novos testes, e o problema está na aba que fica oculta. Então, preciso saber como reexibir a aba enquanto a MACRO roda e ocultar ela novamente no fim da execução da MACRO.
  10. Galera, Estou tentando acessar uma outra planilha com o nome JANEIRO-2016 onde a aba chamada DESENV está oculta e protegida. Ao clicar no botão na planilha com o nome FEVEREIRO-2016 da um erro ao tentar selecionar a aba da planilha JANEIRO-2016. Sub teste() ' Dim xl As New Excel.Application Dim xlw As Excel.Workbook ' ' *** SELECIONA A ABA DESENV DA PLANILHA FEVEREIRO-2016 TORNA ELA VISÍVEL E DESPROTEGE *** Sheets("Desenv").Visible = True Sheets("Desenv").Select Call Desproteger ' Range("H3:M6000").Select Selection.ClearContents Range("H2").Select ' ' *** ABRE A PLANILHA JANEIRO-2016 QUE NESTE MOMENTO ESTA COM A ABA DESENV OCULTA E PROTEGIDA*** Set xlw = xl.Workbooks.Open(ThisWorkbook.Path & "\JANEIRO-2016.xlsm") ' *** COMO A ABA DESENV ESTÁ OCULTA E PROTEGIDA O COMANDO ABAIXO DA ERRO "método select da classe worksheet falhou" xlw.Sheets("Desenv").Select Existe uma forma de reexibir e desproteger a aba da planilha JANEIRO-2016???
  11. smartrading Anexa a planilha e faz uma explicação o que vocês quer e o teste que devo fazer, que eu vejo o que posso fazer.
  12. Eu preciso atribuir a uma variável um valor para fazer um teste lógico. Variável = foi pressionado DEL IF variavel = foi pressionado DEL Then msgbox "Você teclou DEL" else msgbox "prosiga" end if
  13. Não compreendi bem a sua explanação. Mas vamos lá. Esse comando só funciona quando a célula sofre alguma alteração manual, teclando enter, tab ou del. Esse comando não pode ser repetido, se precisar controlar mais de uma células você precisa definir a célula inicial e a final, neste caso todas as células compreendidas entre a inicial e a final também serão controladas. Portanto, se você precisa rodar a macro Compra1 ou Venda1 pelo valor da celula DX1 ou DX2 que tem formulá, não rola desta forma. Private Sub Worksheet_Change(ByVal faixa As Range) Dim monitorar As Range Set monitorar = Range("dx1:dx2") <<== informa que o intervalo entre DX1 a DX2 será controloda If Not Intersect(faixa, monitorar) Is Nothing Then IF fazer um teste lógico pra saber qual célula estava THEN Call compra1 ELSE Call venda1 END IF End If End Sub No caso da DX1 e DX2 ter que ser por formulá altere a lógica ou a forma te obter o resultado.
  14. Fernanda, Tá um pouco confuso a sua explicação, mas vamos lá. (primeiro vamos somar tudo) D8 + H8 + L8 (depois vamos verificar se tem data de devolução para subtrair da soma do estoque) SE(OU(F8<>"";F8>0);D8;0) SE(OU(J8<>"";J8>0);H8;0) SE(OU(N8<>"";N8>0);L8;0) FORMULÁ FINAL =(D8 + H8 + L8) - SE(OU(F8<>"";F8>0);D8;0) - SE(OU(J8<>"";J8>0);H8;0) - SE(OU(N8<>"";N8>0);L8;0) Testa e depois diz se atendeu a tua necessidade.
  15. Onde aparece o nome da planilha, tipo : PLAN1, PLAN2 e PLAN3 selecione a planilha que você quer controlar quando houver mudança e clique com o o botão direito do mouse em cima do nome da planilha, ao surgir um menu de opções, selecione a opção EXIBIR CÓDIGO, neste caso o Visual Basic vai abir direto a pasta de objetos da planilha. E cole o comando, não esqueça de fazer as alterações. Private Sub Worksheet_Change(ByVal faixa As Range) Dim monitorar As Range Set monitorar = Range("A4:A2000") <<== ' Informe aqui a célula ou intervalo de células a ser monitorada If Not Intersect(faixa, monitorar) Is Nothing Then Call NOME_DA_MACRO <<== no seu caso Compra1 End If End Sub Sempre que alguém alterar o conteúdo de alguma célula controlada, a sua Macro Compra1 será executada. Está macro pode estar em Módulo1, Módulo2 ou Módulo9 será executada.
  16. Boa Tarde, Usa isso... * Cola na célula que você quer o resultado =SE(OU(A1="";A1>0);0;"") -> Neste caso se A1 (célula que deve ser avaliada) for igual a Nulo OU Maior que Zero a célula que você colocou a formulá será igual a 0 * Neste caso TODAS a células F8, J8 e N8 tem quer ser diferente de Nulo para formulá inserir zero na célula. =SE(E(F8>"";J8>"";N8>"");0;"") Ambas as formulas podem ser útil, conforme a sua necessidade.
  17. Bom dia, Insira essa SUB na ABA da planilha a ser controlada as modificações. Clique com o botão direito e depois selecione Exibir Código. Private Sub Worksheet_Change(ByVal faixa As Range) Dim monitorar As Range ' Informe aqui a célula ou intervalo de células a ser monitorada Set monitorar = Range("A4:A2000") If Not Intersect(faixa, monitorar) Is Nothing Then Call NOME_DA_MACRO End If End Sub
  18. Bom dia! Preciso um comando que identifique a tecla pressionada, mais precisamente a tecla DEL. Na PLAN1 inseri um sub que controla uma RANGE especifica para saber se houve digitação. Quando houve ela executa uma outra Macro que está no Módulo 1 e valida os dados digitados. Porém ao tecla DEL eu não consigo faz um teste. Abaixo um resumo PLAN1 Private Sub Worksheet_Change(ByVal faixa As Range) Dim monitorar As Range Set monitorar = Range("A4:A2000") If Not Intersect(faixa, monitorar) Is Nothing Then Call Testa_Dia End If End Sub MÓDULO 1 Sub Testa_Dia() ' Capturo a Linha e Coluna da célula selecionada após pressionar ENTER ou TAB xLin = ActiveCell.Row xCol = ActiveCell.Column ' Quando pressionado DEL a Linha e Coluna não alteram If xCol > 1 Then xC = 1 Else xL = 1 End If ' Como a Linha e Coluna não foi trocada a Macro considera como se tivesse sido trocado a Linha ou Coluna If IsDate(Cells(xLin - xL, xCol - xC).Value) Then Data_Cel = Cells(xLin - xL, xCol - xC).Value xData_Valida = "S" End If End Sub

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!