About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2006-08-15
Consideremos o seguinte sistema de equações: x + y =8 e x - y = 2

Assim, na 2ª equação, teriamos: x= y+2. Então, na 1ª equação teríamos com a substituição de x: y + 2 + y = 8 ou seja: 2y = 6 ou seja: y = 6/2 ou seja: y = 3

Então, na 2ª equação teríamos com a substituição de y pelo seu resultado: x - 3 = 2 ou seja: x = 5

Como resolver este problema no Excel?

Com a ajuda do Add-in SOLVER, é possível. Vejamos o exemplo:

Nota - definiu-se C2 como x e C3 como y (Insert|Name|Define)
            B2 é igual a 8, ou seja: x + y
            B3 é igual a 2, ou seja: x - y








O resultado:








2006-08-11
Podemos utilizar o comando Goal Seek (Tools|Goal Seek) para resolvermos, por exemplo, equações. Tomemos a seguinte equação: x+x+x/4+1=100 => 4x+4x+x=396 => 9x=396 => x=396/9 => x=44.

Utilizando o Excel:

A célula A1 será a incógnita (x). Digitamos o valor 0 (zero)

Em B1: =A1+A1+A1/4+1



Utilizando o comando Goal Seek:



O valor colocado no campo "To value" faz parte da equação (100):



E o resultado é dado na célula A1, ou seja, 44, que é o valor de x e o resultado da equação:

2006-08-07
Sabendo como funciona o Operador de Divisão Inteiro (\), então, podemos construir uma UDF, que mais não é do que a Função do Excel denominada QUOTIENT().

Vejamos o exemplo no seguinte screenshot:




O Código da Função IntDiv():

Function IntDiv(ByVal vStr As Double, vStr1 As Double) As Double


    Dim oStr As String

    oStr = vStr \ vStr1

    IntDiv = oStr

End Function


Nota -
Como se pode verificar, é indiferente colocar directamente o valor do dividendo e do divisor ou apenas colocar o endereço das respectivas células que contêm os valores mencionados.
Ao contrário do operador de divisão usual no Excel (/), que nos fornece um resultado com valor fraccionário, o operador de divisão inteiro (\), no VBA, dá-nos sempre o resultado num número inteiro, com nenhuma divisória fracionária.

Vejamos o exemplo:




O Código da função Teste():

Function Teste()

    Dim oDbl As Double
    Dim vA1 As Double
    Dim vA2 As Double

    vA1 = Range("a1")
    vA2 = Range("a2")

    oDbl = vA1 \ vA2

    Teste = oDbl

End Function


  • Tópicos relacionados:


  •  Integer Division (\)

     Function Quotient()

     Function Mod()

     Function Round()