Ir ao conteúdo
  • Cadastre-se

texwil

Membro Pleno
  • Posts

    44
  • Cadastrado em

  • Última visita

Reputação

0
  1. Não são 3000 linhas e sim 3000 formulas e ainda 20 macros e recebe dados externos em tempo real " por segundo" para atualizar as duzentas linhas. Sinto, não posso enviar a planilha. Valeu a intenção.
  2. Da uma olhada na planilha nesse link https://youtu.be/bR3FIKsJqdE é muita informação. A planilha contém Macros e umas 3000 formulas. O PC é um Intel Core I5 2450M e esta apanhando, mas se der prioridade alta fica bom. .
  3. Olá. Utilizo uma planilha do Excel muito complexa, pesada, que exige muito processamento, durante o dia todo. Entrando no gerenciador de tarefas defino como "Prioridade Alta" e processa bem melhor, mas preciso executar essa ação todos os dias quando abro o Excel. Existe alguma maneira de definir essa prioridade que fique fixa, sem precisar todos os dias entrar no gerenciador de tarefas para alterar? Agradeço respostas.
  4. Acredito que o problema esteja na variável d2 "Row, 6" que é uma formula, e não esta sendo reconhecido como valor numérico. Acho que para esse caso utiliza-se o parâmetro "Value", mas não sei onde coloca-lo. Alguém pode ajudar?
  5. @Wendell Menezes. Na verdade, a formula mencionada acima funciona, mas somente se forem digitados valores nas colunas F e AV. Nesta macro, quando na coluna F "Row 6" digito um valor que definido num percentual negativo da coluna AV "Row 48" menor que da coluna H "Row 8", o MsgBox é ativado e visualizado o conteúdo da coluna E "Row 5". Funciona perfeitamente. Mas não funciona quando na coluna F recebe numa formula, através de um link externo, que é ativado por senha no início do expediente. O que falta para que isso aconteça? Ver anexo. Dim d1 As Range, d2 As Range, d3 As Range Dim e1 As Range, f1 As Range Private Sub Worksheet_Change(ByVal Target As Range) With Target Set d1 = Cells(.Row, 5) Set d2 = Cells(.Row, 6) Set e1 = Cells(.Row, 8) Set f1 = Cells(.Row, 48) If .Row <= 360 And (d2 < (e1 * f1 + e1)) Then CelulasParaMatriz Range(d1.Address) End If End With End Sub Function CelulasParaMatriz(ByVal Matriz As Range) Dim Cell As Range Dim Body As String For Each Cell In Matriz 'Para que mostre linhas, valores e formate o MsgBox Body = Body & Cell.Row & " = " & Format(Cell, Cell.NumberFormat) & vbLf Next MsgBox Body, vbInformation, "Informação" End Function Mostrar valor de celula enviado.xlsx
  6. @Wendell Menezes. Necessito que a formula em Azul execute na macro. Coluna 48 é um percentual negativo, a planilha é a mesma, pode ajudar? Private Sub Worksheet_Change(ByVal Target As Range) With Target Set c1 = Cells(.Row, 20) Set c2 = Cells(.Row, 33) Set c3 = Cells(.Row, 46) Set d1 = Cells(.Row, 5) Set d2 = Cells(.Row, 6) Set e1 = Cells(.Row, 8) Set f1 = Cells(.Row, 48) If .Row <= 360 And (d2 <= (e1 * f1 + e1)) Then CelulasParaMatriz Range(d1.Address) End If Set d3 = Cells(.Row, 10) If .Row <= 360 And (Cells(.Row, 6) > c1) And (c1 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If Set d3 = Cells(.Row, 23) If .Row <= 360 And (Cells(.Row, 6) > c2) And (c2 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If Set d3 = Cells(.Row, 36) If .Row <= 360 And (Cells(.Row, 6) > c3) And (c3 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If End With End Sub
  7. @ Wendell Menezes. Funcionou a formatação, mas apareceu a letra da linha. Veja anexo. Mas ficou melhor assim, pois além de informar o produto também informou a linha. ficou ordenado, de melhor visualização e localização. E para guardar, sem a informação da linha, aceito a alteração, para uso futuro.
  8. @Wendell Menezes Segue. Digite 9,10 na célula F5. Percebi que não são todos os valores que aparecem nesse formato. Mostrar valor de celula enviado.xlsx
  9. @ Wendell Menezes. Maravilha! Funcionou legal. É possível formatar a MsgBox internamente? Nas células estão 9,10 e 5.000, e no MsgBox aparece 9,1 e 5000.
  10. Pessoal! Maravilha!! Com muita ajuda, principalmente do @Wendell Menezes, consegui ativar as macros. Funcionou exatamente como preciso, segue abaixo. Na caixa MsgBox que abre aparece as informações que preciso, mas aparece também a letra das colunas, tem como retirar as letras das colunas? Private Sub Worksheet_Change(ByVal Target As Range) Dim c1 As Range, c2 As Range, c3 As Range Dim d1 As Range, d2 As Range, d3 As Range With Target Set c1 = Cells(.Row, 20) Set c2 = Cells(.Row, 33) Set c3 = Cells(.Row, 46) Set d1 = Cells(.Row, 5) Set d2 = Cells(.Row, 6) Set d3 = Cells(.Row, 10) If .Row <= 360 And (Cells(.Row, 6) > c1) And (c1 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If Set d3 = Cells(.Row, 23) If .Row <= 360 And (Cells(.Row, 6) > c2) And (c2 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If Set d3 = Cells(.Row, 36) If .Row <= 360 And (Cells(.Row, 6) > c3) And (c3 > 0) Then CelulasParaMatriz Range(d1.Address & "," & d2.Address & "," & d3.Address) End If End With End Sub Function CelulasParaMatriz(ByVal Matriz As Range) Dim Cell As Range Dim Body As String For Each Cell In Matriz Body = Body & Cell.Address(False, False) & " = " & Cell & vbLf Next MsgBox Body, vbInformation, "Informação" End Function
  11. @Wendell Menezes Quase perfeito. Veja planilha em anexo. Durante o dia posso fazer até três compras, a primeira registro nas colunas I e J, a segunda em V e W, e a terceira em AI e AJ, sempre em ordem decrescente de preço de compra respectivamente, ou seja, só vou para a próxima compra se estiver mais barato. Em AU estipulo o percentual para preço de venda já calculado em T, AG, AT. Para venda o sentido é inverso, ou seja primeiro vendo AI e AJ, depois V e W, e por último I e J. Assim, a função da macro, tem de avisar quando atingir o menor preço das três compras, que seria da direita para a esquerda. Do jeito que a macro está definida, só obtenho informação da primeira compra/venda. Pode ajustar? Mostrar valor de celula3.xlsx
  12. Wendell Menezes. Veja a planilha em anexo. A macro que copia G em BJ, e a formula que congela colunas que está em BI não estão se entendendo e dá erro. No funcionamento real vou agora adicionar "adicione" uma coluna em BG que receberá dados no dia seguinte, e outra em BJ que receberá dados hoje da copia de G para salvar, através do botão vermelho. Depois repita como se fosse no dia seguinte para entender melhor. A planilha está em situação real, é só habilitar macro. Mostrar valor de celula2.xlsx
  13. Precisa checar nas 360 linhas de T, de AG e de AT. F precisa ser maior que T OU AG OU AT.
  14. Realmente, os dados de G são colados em CC e BW, mas preciso que os dados sejam colados somente em BJ, ficariam nessa ordem, dados de sexta na coluna BJ, de quinta na coluna BK, de quarta em BL e assim sucessivamente. Da forma com que está, ao adicionar colunas antes e depois de BI a colagem vai para frente uma coluna além de CC. Tentei alterar os números internos, mas não deu certo.
  15. @Wendell Menezes A macro funciona legal, mas a chamada da macro não funciona, pode ajudar? A chamada da anterior não funcionou. Preciso que a macro execute com disparo da coluna F quando for maior que as colunas T, AG, AT . A coluna A é só para manter uma formula em F, no real F recebe externo. Anexo planilha. Mostrar valor de celula.xlsx

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...