Valor de celdas continuas

Hola gfellay, vuelvo a molestarte porque no me funciono la modificación que quise hacer antes, ¿recuerdas lo de "si 9,50 = movilidad"?
Se me ocurre que con una función "definida por el usuario" podría ser más fácil, para cualquier celda donde la inserte.
Me puedes decir, por favor, ¿cómo seria en VBA la siguiente pregunta?
Si celda de la derecha "9,50" then celda de la izquierda = "movilidad", else ""
Creo que eso debería funcionar mucho más fácil que lo anterior que intente hacer,
muchísimas gracias nuevamente y saludos,
1

1 respuesta

Respuesta
1
No llego a entender bien, igual te comento que en excel con las fórmulas "convencionales" NO podes hacer que una celda cambie el valor de otra celda; lo que pongas en la celda será el resultado de ella y no va a hacer que modifique en otro lado (salvo por supuesto que la otra celda haga referencia a esta...)
Por lo que recuerdo (poco) de tu caso, la única forma de hacer lo es con macros pues las funciones definidas por el usuario, una vez que están listas tienen la misma funcionalidad que las funciones integradas.
Espero que con lo que te comenté te sirva para replantear tu problema, tal vez deberías considerar reacomodar el archivo y/o ver de que manera se pueden cambiar los datos a ingresar, etc
Con la fórmula que me pasaste funciona perfecto, con la salvedad que es solo para las celdas predefinidas, lo no se si se puede hacer es usando offset
If Target.Adress = ("$D$3") then
if Target.Value = 9.5 Then
Range ("b3") = "Movilidad"
Else
Range ("b3") = ""
Si en lugar de refenciar a la celda ("$D$3") poner Offset 0,1 y la B3 offset (0,-1) ; o sea si coloco la función en la celda C, (offset 0,1 seria la D) y modificar la B con (offset 0,-1 = Movilidad)
Tenés correcta la idea pero no llego a entender bien lo que estás tratando de hacer pero si, podrías hacer algo como
If Target.Adress = ("$D$3") then
if Target.Value = 9.5 Then
Target.Offset(0,-1) = "Movilidad"
Else
Target.Offset(0,-1) = ""
Los parámetros del offset son
Offset(Fila, Columna)
Donde los valores de Fila y Columna pueden ser positivos (abajo / derecha) o negativos (arriba / izquierda)
Seguro que es eso, yo no me explico bien, a ver si es posible corregir la fórmula que yo no se cuales son los comandos correctos
Function Movil ()
if target.Offset.  (0,1) = "9,5" then
target. Offset (0,-1) = "Movilidad"
Else
target.Offset (0,-1) = ""
end if
end function
Eso seria lo que yo quiero hacer, no poner referencia de una celda, sino que sirva para cualquiera, pero no se si hay que activar la celda, la hoja, en definitiva la orden correcta en el lenguaje VBA.
Gracias por lo que puedas hacer y saludos
Probá entonces sacando el IF inicial (el que verifica la dirección), creo que debería quedar más o menos así
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Offset(0, 1) = 9.5 Then
Target.Offset(0, -1) = "MOVILIDAD"
Else
Target.Offset(0, -1) = ""
End If
End Sub
Agregué el "On Error" por las dudas que modifiques en la celda A (pues al querer hacer el -1 daría error)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas