VBA Excel función "Si" anidada.

Tengo un montón de hoyas en las que se incluye la siguiente fórmula:

=SI(F9="";"";SI(F9="SPC";" 5 piezas al inicio de serie y cada 24h
'F4G'";"Inicio y/o Re-Inicio de Producción y cada vez que se empiece una nueva caja"))

Ahora necesito modificar el texto de la fórmula por lo que me he hecho una macro que vaya abriendo todos los archivos excel de una carpeta y modifique la fórmula pero al ejecutar la línea mostrada a continuación, que debería modificar la fórmula obtengo el error "Se ha producido el error '1004' en tiempo de ejecución: Error definido por la aplicación o el objeto":

With...

.Range("K9") = "=SI(F9=" & ";" & ";SI(F9=" & "SPC" & ";" & " 5 piezas al inicio de serie y cada 24h 'F4G'" & ";" & "Inicio y/o Re-Inicio de Producción 'Check List' y Verificación 2 inyectadas cada 8 horas con registro en 'F3' cada 24h." & "))"

End With...

Imagino que habrá otra forma de introducir la fórmula que no sea tratar de copiar literalmente el texto modificado de la fórmula actual dentro de la celda ya que creo da error por las comillas que incluye el texto; Lo he intentado con WorksheetFunction.IF pero tampoco lo he conseguido.

1 Respuesta

Respuesta
3

H   o   l   a:

No tienes que reconstruir la fórmula, solamente reemplaza el texto original por el nuevo texto:

Sub Cambiar()
'por Dante Amor
    texto1 = "Inicio y/o Re-Inicio de Producción y cada vez que se empiece una nueva caja"
    texto2 = "Inicio y/o Re-Inicio de Producción 'Check List' y Verificación 2 inyectadas cada 8 horas con registro en 'F3' cada 24h."
    Cells.Replace What:=texto1, Replacement:=texto2, _
        LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
        SearchFormat:=False, ReplaceFormat:=False
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Gracias por tú respuesta dante, pero lo que yo necesito es que la fórmula de la celda K9 continúe activa y que el texto que aparezca en la celda K9 varíe en función del contenido de la celda F9.

Entonces no entiendo qué necesitas.

Podrías explicarlo con ejemplos.

Qué tienes en cada celda y qué esperas como resultado después de la macro

Hola de nuevo Dante,

Lo que ahora tengo en la celda es:

=SI(F9="";"";SI(F9="SPC";" 5 piezas al inicio de serie y cada 24h
'F4G'";"Inicio y/o Re-Inicio de Producción 'Check List' y Verificación cada 8 horas con registro en 'F3' cada 24h."))

Y lo que quiero tener después de ejecutar la macro es:

=SI(F9="";"";SI(F9="SPC";" 5 piezas al inicio de serie y cada 24h
'F4G'";"Inicio y/o Re-Inicio de Producción 'Check List' y Verificación 2 inyectadas cada 8 horas con registro en 'F3' cada 24h."))

la macro ya me funciona en otra columna en la que he sustituido un texto por otro, pero en ese caso, el texto final no es una fórmula (ni incluye comillas ni dobles comillas), que me temo es lo que hace que no me funcione en esta columna...

Saludos,

¿Ejecutaste mi macro?

Solamente ejecuta mi macro, actualiza los textos tal como te lo indiqué.

La macro no te borra tu fórmula, la fórmula va a seguir "activa" pero con el texto nuevo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas