Necesito ayuda con el visual basic, funcion if

Soy solo un aficionado y solo se utilizar más o menos el excel con algunas funciones anidadas es decir, funciones si concatenadas, la verdad que son muy útiles y es por esta razón que me vi precisado a realizar un listado más extenso de funciones si, pero me di cuenta de que solo el excel permite no más de siete funciones anidadas y yo necesito muchísimas más, me comentaron que utilizando bien el visual podría conseguirlo, me dieron unos pasos a seguir, con funciones publicas y escribiendo "if","else","end if" y demás, la verdad es que nunca me funciono, es más tome unas imágenes de la pantalla para que vean los pasos que seguí y hasta donde llegue, la cuestión es que nunca me anduvo y di muchas vueltas tratando de solucionarlo, quisiera saber si puede darme una guía de pasos a seguir para realizar una función si infinita y como activarla por que tampoco se, es decir: si(((a1="cajas";b1="carton";si(a1="cajon";"madera";si(a1="x";b1="etc. Etc. Etc...

1 respuesta

Respuesta
1
Con vba para excel podrías hacer una concatenación de if de 255 concatenaciones, una instrucción if infinita no se puede hacer con ningún lenguaje de programación. De todas formas, tal vez te sea más útil utilizar la función case is, que tantos ifs concatenados, por ejemplo:
select case range("a1").value
     case is = "cajas"
          range("b1).value = "carton"
     case is = "cajon"
          range("b1").value = "madera"
     .....
end select case
Para acceder a la sección de programación vba en excel debes presionar la tecla f11 (con versionas más nuevas de excel es otra tecla), hay te aparece una lista de todas las hojas de tu libro, así que debes seleccionar la hoja donde quieras que se haga la comprobación y meter el código en el apartado worksheet - change.

Gracias desde ya por la ayuda; pero te cuento por que realmente necesito que esto funciones, yo creo una hoja de calculo, uso 2 columnas, A y B, En A1 porngo "Elemento" como titulo de la columna y en B1 "Tipo de elemento"; entonces escribo "cajas" en A2 y en B2 debería salir "carton", de poner en A2 "cajon" debería salir en B2 "madera", el rango puede ser desde A2:A10 Y B2:B10; entonces presiono f11, como decías antes estos comandos me da por ejemplo crear una hoja de gráfico, voy por alt+f11; de ahí voy al menu "ver" y de ahí a "explorador de proyectos" y me muestra las hojas, selecciono hoja1, aparece "libro1-hoja1 (código)" debajo doslistas desplegables que dice "general" la izquierda y la derecha "declaraciones", entonces escribo
select case range ("a2").value
case is="cajas"
range("b2").value="carton"
case is="cajon"
range("b2").value
end select case
No se ni como activarla y me da error es decir no se que debo escribir o a donde ir para que me ande
En lugar de como lo haces, es más fácil para acceder al código hacer:
En la hoja de excel, en la parte de abajo, aparecen las pestañas: hoja1, hoja2 ... etc
activas la hoja donde quieras meter código, le das al botón derecho y en el menu seleccionas: ver código
y ya esta.
Lo siguiente, vas bien, solo que en las listas desplegables debes elegir: en la de la izquierda worksheet, y en la de la derecha change.
Para que cada vez que cambie el valor de una celda ejecute el código que le pongas
el código completo debería quedar así:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value <> "" Then
Select Case Target.Value
Case Is = "cajas"
Target.Offset(0, 1).Value = "carton"
Case Is = "cajon"
Target.Offset(0, 1).Value = "noseque"
End Select
End If
End Sub
Es mejor meter tabulaciones para que al programar sea más claro donde empiezas los if, case, el private... etc
Mis felicitaciones, esto es excelente!, la verdad que te estoy muy agradecido, de todos con los que he hablado eres el único que me ha dado la solución más pragmática, gracias ya sabre a quien preguntar más tarde... de poder ayudarte en algo mi mail si no lo tienes es [email protected], en lo que pueda te daré una mano. Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas