2 condicionales

13/12/2009 - 22:23 por Compumakro | Informe spam
Éste es un mensaje de varias partes en formato MIME.
=_NextPart_000_000A_01CA7C10.8A6D4BA0

Amigos de Excel2007
Hoy les molesto, porque estoy haciendo una tabla para calcular costos, según los ingredientes en repostería

Quiero que la tabla sea "automática" según el sistema de medida... libra o Litro

Hice una fórmula pero no me funciona con "Or"... solo funciona con un condicional. es decir ... si le quito Or "Litro"... funciona

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Fila As Integer
For Fila = 14 To 30
If Cells(Fila, 4) = "Libra" Or "Litro" Then
Cells(Fila, 5) = Cells(Fila, 6) * 2
Else: Cells(Fila, 5) = Cells(Fila, 6) * 1
End If
If Cells(Fila, 4) = "Libra" Or "Litro" Then
Cells(Fila, 7) = Cells(Fila, 5) * Cells(Fila, 3) / 1000
Else: Cells(Fila, 7) = Cells(Fila, 3) * Cells(Fila, 6) / 1000
End If
Next Fila

End Sub

Saludos

Oscar
=_NextPart_000_000A_01CA7C10.8A6D4BA0

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=text/html;charset=iso-8859-1 http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18865"></HEAD>
<BODY style="PADDING-LEFT: 10px; PADDING-RIGHT: 10px; PADDING-TOP: 15px"
id=MailContainerBody leftMargin=0 topMargin=0 CanvasTabStop="true"
name="Compose message area">
<DIV><FONT size=2 face=Arial>Amigos de Excel2007</FONT></DIV>
<DIV><FONT size=2 face=Arial>Hoy les molesto, porque estoy haciendo una tabla
para calcular costos, según los ingredientes en repostería</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Quiero que la tabla sea "automática" según el
sistema de medida... libra o Litro</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Hice una fórmula pero no me funciona con "Or"...
solo funciona con un condicional. es decir ... si le quito Or "Litro"...
funciona</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Private Sub Worksheet_SelectionChange(ByVal Target
As Range)<BR>Dim Fila As Integer<BR>&nbsp; For Fila = 14 To 30<BR>If Cells(Fila,
4) = "Libra" Or "Litro" Then<BR>Cells(Fila, 5) = Cells(Fila, 6) * 2<BR>Else:
Cells(Fila, 5) = Cells(Fila, 6) * 1<BR>End If<BR>If Cells(Fila, 4) = "Libra" Or
"Litro" Then<BR>Cells(Fila, 7) = Cells(Fila, 5) * Cells(Fila, 3) / 1000<BR>Else:
Cells(Fila, 7) = Cells(Fila, 3) * Cells(Fila, 6) / 1000<BR>End If<BR>Next
Fila</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>End Sub<BR></FONT></DIV>
<DIV><FONT size=2 face=Arial>Saludos</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Oscar</DIV></FONT></BODY></HTML>

=_NextPart_000_000A_01CA7C10.8A6D4BA0--

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/12/2009 - 01:41 | Informe spam
hola, Oscar !

Mostrar la cita
la linea que falla es porque NO debes "asumir" que la comparacion sigue siendo con la misma "base" (es decir)... cambia:

de: -> If Cells(Fila, 4) = "Libra" Or "Litro" Then

a: -> If Cells(Fila, 4) = "Libra" Or Cells(Fila, 4) = "Litro" Then

saludos,
hector.

__ el codigo expuesto __
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Fila As Integer
For Fila = 14 To 30
If Cells(Fila, 4) = "Libra" Or "Litro" Then
Cells(Fila, 5) = Cells(Fila, 6) * 2
Else: Cells(Fila, 5) = Cells(Fila, 6) * 1
End If
If Cells(Fila, 4) = "Libra" Or "Litro" Then
Cells(Fila, 7) = Cells(Fila, 5) * Cells(Fila, 3) / 1000
Else: Cells(Fila, 7) = Cells(Fila, 3) * Cells(Fila, 6) / 1000
End If
Next Fila
End Sub
#2 Compumakro
14/12/2009 - 02:51 | Informe spam
Hector, muchas gracias...!!
Discúlpame por la tontería era obvio. hace rato no transito Excel...
y la memoria se distrae... Hasta me equivoqué en el planteamiento pero
ya lo corregí.

Ahí tengo ahora uno que sí no sé cómo ponerlo a funcionar el del nombre
propio... porque si ponen "litro" o "libra" con minúscula no va a
funcionar entonces puse el de nombre propio, pero no me funciona..
Así quedó planteado en la penúltima fila:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Fila As Integer
For Fila = 14 To 30
If Cells(Fila, 4) = "Libra" Then
Cells(Fila, 5) = Cells(Fila, 6) * 2
Else: Cells(Fila, 5) = Cells(Fila, 6) * 1
End If
If Cells(Fila, 4) = "Libra" Then
Cells(Fila, 7) = Cells(Fila, 5) * Cells(Fila, 3) / 1000
Else: Cells(Fila, 7) = Cells(Fila, 3) * Cells(Fila, 6) / 1000
End If
If Cells(Fila, 4) = "Litro" Then
Cells(Fila, 7) = Cells(Fila, 5) * Cells(Fila, 3) / 1000
Else: Cells(Fila, 7) = Cells(Fila, 3) * Cells(Fila, 6) / 1000
End If
Next Fila
Cells(Fila, 4) = Application.Proper(Cells(Fila, 4))

End Sub


Saludos

Oscar



"Héctor Miguel" escribió en el mensaje de
noticias:ey$
Mostrar la cita
#3 Compumakro
14/12/2009 - 03:02 | Informe spam
Discúlpame Héctor, pero ya vi el error... lo puse después de "Next Fila"...
y es antes...Gracias

Saludos
Oscar

"Compumakro" escribió en el mensaje de
noticias:#$
Mostrar la cita
#4 Héctor Miguel
14/12/2009 - 03:41 | Informe spam
hola, Oscar !

Mostrar la cita
tambien puedes evitar la "preocupacion" y que no importe como se haya escrito si cambias...

de esto: -> If Cells(Fila, 4) = "Libra" Then

a esto: -> If LcaseCells(Fila, 4)) = "libra" Then

saludos,
hector.
Ads by Google
Search Busqueda sugerida