DIVISAO HORAS COM PORCENTAGEM

LUIZGS 02/12/2010 12:06:31
#358626
bom dia amigos como posso fazer para fazer para calcular a porcentagem de horas conforme abaixo:
h1:10:00
h2:20:00
h3:10:00
h4:10:00
horas total: 50:00

porcentagem h2: 40,00%
Obrigado

Luiz

MARCELO.TREZE 02/12/2010 14:58:18
#358641
Resposta escolhida
uma pergunta corre o risco de haver horas fracionadas

ex:

Horas total = 50:37

FEDERHEN 02/12/2010 15:20:35
#358644
1) Converte tudo para minutos.
Exemplo: 04:23 = (4 * 60) + 23 = 263
2) Para calcular o percentual, faça um calculo de regra de três, usando as horas convertidas em minutos.
LUIZGS 02/12/2010 15:46:51
#358646
Boa tarde, obrigado pelo retorno, Marecelo-Treze, sim pode ocorrer.
Federhen, obrigado vou experimentar fazer como vc mencionou.


Att

Luiz
MARCELO.TREZE 02/12/2010 16:35:15
#358648
O Federhen já disse a maneira correta, mas expliocando em código seria assim

Function PorcentagemHoras(HorasTotal As String, Porcentagem As Integer) As String
Dim Vetor() As String
Dim Minutos As Integer
Dim H As Integer, M As Integer
Dim Resultado As Integer

Vetor = Split(HorasTotal, [Ô]:[Ô])

Minutos = (Vetor(0) * 60) + Vetor(1)

Resultado = (Minutos / 100) * Porcentagem

M = Resultado Mod 60
H = (Resultado - M) / 60
PorcentagemHoras = H & [Ô]:[Ô] & Format(M, [Ô]00[Ô])
End Function


Private Sub Command1_Click()
[txt-color=#007100][ô] Forma de uso PorcentagemHoras ( totaldehoras, Porcentagem)[/txt-color]
MsgBox PorcentagemHoras([Ô]50:00[Ô], 40)
End Sub


veja se te ajuda
LUIZGS 02/12/2010 18:11:05
#358658
Boa tarde Marcelo-Treze muito obrigado pelo código, só estou tendo um pouco de dificuldade em adaptar ao meu relatorio, tenho 5 textbox que sao preenchidas com horas (txthora1,txthora2...txthora5), e outra textbox (txttotal)que soma essas horas, gostaria que o resultado da porcentagem aparecesse em outras textbox(txtporcentagemhora1, txtporcentagemhora2....txtporcentagemhora3).
Desde ja agradeço sua vontade em ajudar.
Abraços

Luiz
MARCELO.TREZE 02/12/2010 18:17:18
#358660
seria algo assim

txtporcentagemhora1.Text = PorcentagemHoras(txtHora1.Text, 40)
txtporcentagemhora2.Text = PorcentagemHoras(txtHora2.Text, 20)
txtporcentagemhora3.Text = PorcentagemHoras(txtHora3.Text, 20)
LUIZGS 02/12/2010 19:51:48
#358665
Boa tarde Marcelo-Treze, estou anexando uma tela para melhor visualização, seu código funcionou bem, mas eu gostaria que a porcentagem fosse em função do total de horas , conforme aparece na tela em anexo.

Att
Luiz
MARCELO.TREZE 02/12/2010 20:18:34
#358670
vamos lá vc deseja informar duas horas e saber qual é a diferença em porcentagem, seria isto?

MARCELO.TREZE 02/12/2010 20:20:14
#358671
seria algo assim?

Function PorcentagemHoras(Horas As String, Porcentagem As String) As Double
Dim VetorA() As String, VetorB() As String
Dim MinutosA As Double, MinutosB As Double

VetorA = Split(Horas, [Ô]:[Ô])
VetorB = Split(Porcentagem, [Ô]:[Ô])

MinutosA = (VetorA(0) * 60) + VetorA(1)
MinutosB = (VetorB(0) * 60) + VetorB(1)

PorcentagemHoras = Format(MinutosB / (MinutosA / 100), [Ô]0.00[Ô])
End Function


Private Sub Command1_Click()
MsgBox PorcentagemHoras([Ô]50:00[Ô], [Ô]20:00[Ô]) & [Ô]%[Ô]
End Sub
LUIZGS 02/12/2010 21:42:45
#358676
Boa noite Marcelo-Treze, seria assim, tenho 5 textboxhora, onde sao digitadas as horas e uma textboxtotal, que é a soma das horas, gostaria de saber qual é a porcentagem de cada textboxhora em relação ao total de horas do textboxtotal,
Desculpe se não consegui explicar bem a minha necessidade.
Obrigado
Luiz

Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas