La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Excel/1131793-Crear-sentencia-logica-IF-en-macro.html

Crear sentencia logica IF en macro

Crear sentencia logica IF en macro

Publicado por Josele (2 intervenciones) el 12/08/2009 14:00:16
Como podré crear una macro con una sentencia lógica IF que evalúe dos celdas con valores monetarios en dos diferentes hojas, pero, una de dichas hojas cambia diariamente de nombre. Pongamos por ejemplo las hojas Balance diario – 120809, y la hoja Comparar. Bien, Balance diario – 120809 cambia los datos numéricos en función del día en que estamos, ayer seria Balance diario – 110809 y mañana será Balance diario – 130809, Comparar mantiene el mismo nombre.

¿ Es eso posible?

Graciasssssssssssssss
sin imagen de perfil

RE:Crear sentencia logica IF en macro

Publicado por jcs (494 intervenciones) el 13/08/2009 09:32:00
Muy buenas,

Te doy tres posibilidades distintas para que uses la que más te convenga. En los tres casos hace una resta de los valores de las celdas “A1” de la hoja “Comparar” y la hoja del día de hoy obtenida de diferentes formas.Tienes que crear un módulo en el que metas la función de las tres que desees, y luego en una celda de la hoja comparar escribir:
=compara()

1ª opción: obtiene el dato del día de hoy para determinar el nombre de la hoja (daría un error si la hoja todavía no existiera)
Function compara()
hoja = "Balance diario - " & Format(Now(), "DD") & Format(Now(), "MM") & Format(Now(), "YY")
compara = Sheets("Comparar").Range("A1") - Sheets(hoja).Range("A1")
End Function

2ª opción: utiliza siempre la última hoja
Function compara()
compara = Sheets("Comparar").Range("A1") - Sheets(Sheets.Count).Range("A1")
End Function

2ª opción: utiliza siempre la hoja 3

Function compara()
compara = Sheets("Comparar").Range("A1") - Sheets(3).Range("A1")
End Function

Espero que alguna se adapte a tus necesidades.

Un saludo. Juanjo.