Notifications
Clear all

Do While na Planilha ou VBA

12 Posts
4 Usuários
0 Reactions
1,904 Visualizações
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

Olá pessoal , seguinte , estou precisando de um código é simples porém como não estou tendo tempo de estudar VBA tá difícil de resolver e já pesquisei bastante mas as informações que acho sobre o que preciso confundem muito e no final fazem coisas que não é o que eu preciso , estou com tudo quase pronto na minha planilha só falta isso pra terminar :oops: .

vou postar o código que fiz e o que preciso que ele faça .


Sub Porcento()

    Dim Linha As Double    ----------------------> Usei assim porque preciso no número estilo " FLOAT " em outras Linguagens
    
    
    Valor_Vender = W4    ----------------------> esse valor da Célula W4 indica o valor Final que devo Vender com Juros    
    Valor_Calculado = AA4    ----------------------> esse valor da Célula AA4 indica o valor que foi calculado pela Planilha
    Valor_Meta = V4    ----------------------> esse valor da Célula V4 indica o valor que preciso que sobre após o Desconto
    Aumentar = 0.01


    Do While AA4 < V4
        Cells (Valor_Vender) + Aumentar
        
    Loop

End Sub

Isso fiz para a Linha 1 e queria extender para todas as linhas , igual quando faz uma fórmula e coloca o mouse na parte de baixo da Célula até aparecer uma Cruz e arrasta e copia a fórmula para as demais células calculando em suas respectivas linhas .

Se alguém puder ajudar fico agradecido .

 
Postado : 04/04/2017 11:14 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Diogo,

Esse seu Do While me parece errado, o AA4 me parece que sempre vai ficar menor que o V4.

Coloque uma planilha de exemplo, assim fica mais fácil ajudar.

OBS: Tem boas aulas no Youtube sobre rotinas de repetição: https://www.youtube.com/results?search_ ... C3%A3o+vba

 
Postado : 04/04/2017 11:32 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Diogo Lian,

Boa tarde!

Sem ver sua planilha e entender o que ela faz fica meio difícil... mas vou tentar fazer algumas suposições.

Primeiramente, você deve verificar uma coluna que tenha dados em todas as linhas da sua planilha e descobrir qual é a última linha com dados dessa coluna. Supondo que essa coluna seja a coluna A de uma aba chamada Plan1, teríamos o seguinte código para descobrir qual é a última linha com dados:

    Dim i As Long
    Dim UltimaLinha As Long
    
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row

Descoberta a última linha com dados, agora você faz um laço FOR/NEXT e coloca o seu código dentro dele, substituindo, obviamente, aonde tiver números que se referem aos n[úmeros da linha pelo contador "i". Supondo que os dados começam na linha 2, mais ou menos assim:

For i = 2 to UltimaLinha
     'Aqui começa o seu código
Next

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/04/2017 11:41 am
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

obrigado pela atenção , mas sei muito pouco de VBA , como faço pra anexar minha planilha aqui ?

 
Postado : 04/04/2017 5:21 pm
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

Fiz um vídeo também tenatndo explicar o que preciso fazer na minha Planilha , deixei os dados exatamente nas células que uso na outra planilha , fiz essa pra ficar mais leve sem os outros dados já que não importam muito para essa parte , gostaria de saber também como postar a Planilha no tópico , obrigado .

https://www.youtube.com/watch?v=QsHbLC7hw0o

 
Postado : 04/04/2017 5:27 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Diogo Lian,

Bom dia!

Primeiramente, você compacta seu arquivo com . ZIP.

Abaixo da caixa de mensagem onde você digita tem duas abas (Opções e Adicionar um anexo). Clique em Adicionar um anexo. Depois clique no botão Selecionar arquivo que surgiu no passo anterior. Aparecerá a caixa de abertura de arquivos do Windows. Escolha o arquivo e feche a caixa. O nome do seu arquivo agora aparece no campo Nome do arquivo. Clique no botão Adicionar um anexo e depois no botão Enviar (para enviar a mensagem com o arquivo anexo).

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/04/2017 7:18 am
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

Diogo Lian,

Boa tarde!

Sem ver sua planilha e entender o que ela faz fica meio difícil... mas vou tentar fazer algumas suposições.

Primeiramente, você deve verificar uma coluna que tenha dados em todas as linhas da sua planilha e descobrir qual é a última linha com dados dessa coluna. Supondo que essa coluna seja a coluna A de uma aba chamada Plan1, teríamos o seguinte código para descobrir qual é a última linha com dados:

    Dim i As Long
    Dim UltimaLinha As Long
    
    UltimaLinha = Sheets("Plan1").Cells(Cells.Rows.Count, 1).End(xlUp).Row

Descoberta a última linha com dados, agora você faz um laço FOR/NEXT e coloca o seu código dentro dele, substituindo, obviamente, aonde tiver números que se referem aos n[úmeros da linha pelo contador "i". Supondo que os dados começam na linha 2, mais ou menos assim:

For i = 2 to UltimaLinha
     'Aqui começa o seu código
Next

Amigo, siga estes passos do Wag, que o código será feito para todos. Mas pelo que entendi, faltou ficar desta maneira o cálculo:

    Do While AA4 < V4
        Range(Valor_Vender).Value = Range(Valor_Vender).Value + Aumentar
        
    Loop

Pois o Excel reconhece as células AA4, V4, W4 na propriedade Range, a propriedade Cells deriva de Linhas e Colunas, como por exemplo: Cells(4,23) (Corresponde a W4)

Faça o teste utilizando as rotinas que o Wag passou para que sejam executadas em todas as linhas, e faça desta maneira para ver se funciona.

Para facilitar, já que você declarou uma variavel chamada Linha, mude ela para Integer, e tente o seguinte:

Linha = 1    'Ou 2, ou 3, ou 4..., depende se você utilizou um cabeçalho na sua planilha ou não
Do Until Cells(Linha,27) <> "" 'identifica se existe dado na linha ou não, verificando a célula da linha correspondente e da coluna AA4. (Pode-se alterar o 27 para qualquer outra coluna que quiser)
    Do While AA4 < V4

        Range(Valor_Vender).Value = Range(Valor_Vender).Value + Aumentar
        
    Loop

    Linha = Linha + 1 'Passa para a próxima linha

Loop
 
Postado : 05/04/2017 10:25 am
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

Olá adicionei a Planilha com a formatação que estou usando , ela também é a mesma do vídeo que postei , desculpem o vídeo muito longo , obrigado .

Vídeo ---> https://www.youtube.com/watch?v=QsHbLC7hw0o

 
Postado : 05/04/2017 12:59 pm
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 
Amigo, baixei a planilha aqui, mas não entendi muito bem a lógica dela...
Tem alguns cálculos lá, que ao meu ver estão errados (na parte lógica eu digo, e não na execução).

Têm como você explicar, sem ser pelo excel, o que você quer?

Se você quer calcular o desconto, se quer calcular o valor final do produto com os juros, se quer calcular o custo, o que seria que vc quer calcular, pois ao meu ver, não faz sentido fazer o que você jogou na programação ali, e as formulas que você esta usando.

A macro que passei funciona para o que você pediu, mas acho que não vai dar o valor que você quer.

Amigo, o que coloquei em code, foi antes de ver o começo do video.
Um video muito extenso, não tenho tempo agora de ver ele inteiro, mas pelo que entendi, é calculo simples de margem de lucro (neste caso, taxas a ser inseridas no valor final do cliente).

Ao invés de multiplicar por (1+0,11) o valor do produto, que daria o valor + 11%, faça o valor do produto DIVIDIDO POR (1-0,11) (divida por 1 menos 11% o valor do produto), que você terá o que quer.

Ou seja, não precisará "atingir meta".

Isto é calculo de contabilidade, e como disse meu professor de contabilidade da pós, o calculo errado de margem de lucro, já faliu muita empresa.

Enfim, no exemplo dos 10 reais que você disse, faça:

(10/(1-0,11))

terá como resultado: 11,236

Se você tirar 11% deste valor, voltará para os 10 reais.

 
Postado : 05/04/2017 2:11 pm
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

mas pelo que entendi, é calculo simples de margem de lucro (neste caso, taxas a ser inseridas no valor final do cliente).

Ao invés de multiplicar por (1+0,11) o valor do produto, que daria o valor + 11%, faça o valor do produto DIVIDIDO POR (1-0,11) (divida por 1 menos 11% o valor do produto), que você terá o que quer.

Ou seja, não precisará "atingir meta".

Isto é calculo de contabilidade, e como disse meu professor de contabilidade da pós, o calculo errado de margem de lucro, já faliu muita empresa.

Enfim, no exemplo dos 10 reais que você disse, faça:

(10/(1-0,11))

terá como resultado: 11,236

Se você tirar 11% deste valor, voltará para os 10 reais.

Muitíssimo obrigado Felipe , resolveu meu problema sem usar VBA , com uma fórmula bem enxuta , na Planilha usei a Fórmula " =V4/(1-W2) " e ficou tudo beleza , agora a planilha me dá o valor que devo vender e quando for descontar a porcentagem do site eu recebo o valor de R$ 10,00 como queria , já que para receber esse valor depois do desconto precisarei vender por R$ 11,24 com desconto de 11% .

Obrigado .

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

 
Postado : 05/04/2017 5:35 pm
(@diogo-lian)
Posts: 19
Active Member
Topic starter
 

Obrigado a todos pela Ajuda e Atenção .

 
Postado : 05/04/2017 5:38 pm
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

mas pelo que entendi, é calculo simples de margem de lucro (neste caso, taxas a ser inseridas no valor final do cliente).

Ao invés de multiplicar por (1+0,11) o valor do produto, que daria o valor + 11%, faça o valor do produto DIVIDIDO POR (1-0,11) (divida por 1 menos 11% o valor do produto), que você terá o que quer.

Ou seja, não precisará "atingir meta".

Isto é calculo de contabilidade, e como disse meu professor de contabilidade da pós, o calculo errado de margem de lucro, já faliu muita empresa.

Enfim, no exemplo dos 10 reais que você disse, faça:

(10/(1-0,11))

terá como resultado: 11,236

Se você tirar 11% deste valor, voltará para os 10 reais.

Muitíssimo obrigado Felipe , resolveu meu problema sem usar VBA , com uma fórmula bem enxuta , na Planilha usei a Fórmula " =V4/(1-W2) " e ficou tudo beleza , agora a planilha me dá o valor que devo vender e quando for descontar a porcentagem do site eu recebo o valor de R$ 10,00 como queria , já que para receber esse valor depois do desconto precisarei vender por R$ 11,24 com desconto de 11% .

Obrigado .

:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Que bom que resolveu fácil Diogo!
Fique à vontade de perguntar sempre! hahahaha
Grande abraço.

 
Postado : 05/04/2017 7:25 pm