Macro para hacer hoja resumen

Hola! Tengo un libro con muchas hojas donde en cada hoja se carga en una linea a diario información y se borra también, lo que necesito es que al final de la jornada me diga cuantas lineas cargue en ese día tomando como referencia la celda F5 de ahí para abajo porque F1, F2, F3 y F4 son el encabezado de la hoja (todas las hojas tienen encabezado) y me lo haga en una hoja aparte que supongamos se llame CONTROL.
¿Cuál seria la macro para hacer esto?
Respuesta
1
Antes de empezar a pensar en macros debiéramos tener claro el problema y la solución, digamos a mano. Por ejemplo, estás hablando de cargar y borrar información. ¿Significa eso que quieres saber el cambio en el número de líneas o en el contenido también? Sería bueno también qué hojas quieres "controlar" y como las llamas o si simplemente son las POR primeras.
Por otro lado, el final de la jornada es algo que tu decides dándole a un botón por ejemplo o debe ser automático al cerrar Excel (y lo ves al día siguiente).
Personalmente me gustan soluciones visuales porque son fáciles de entender en general. Una vez definido que es cambio y que no, ¿ayudaría por ejemplo que los cambios se hayan realizado con un color de fondo definido en las lineas que cambian o todavía mejor una marca en la primera columna insertada al efecto? Supón que en todas esas hojas insertas una columna estrecha y con un código de colores indicas lo que es cambio. Sería fácil recorrer las hojas y hacer el control, además de que visualmente la comprobación es también fácil.
OK creo que no me explique bien. Tengo un libro donde llevo una especie de cesta de pedidos como hay muchos tipos tengo una hoja principal con hipervínculos que linkea con cada hoja por ejemplo si es un pedido tipo A me lleva a la A pero como llevo control de los pedidos diarios, tengo una hoja donde coloco cada pedido con la fecha en la que llego.
Por supuesto cuando termino un pedido lo saco y así sucesivamente voy metiendo, haciendo y al terminar saco. Pero el control siempre me almacena toda la información de lo que ingreso y me permite llevar estadísticas mensuales. Lo que quiero es una macro para cuando haga el cierre me llene lo ingresado en el día de manera que pueda copiar en la otra hoja sin tener que escribir a mano aquí y allá. Cada pedido ocupa una linea con datos ejemplo A5:M5 se puede hacer con fórmulas pero sera muy tedioso y podría muy pesado el archivo más de lo que esta.
Por los nombres de las hojas no te preocupes tengo una hoja llamada indice con los nombres. Gracias por tu ayuda espero me entiendas sino me explico mejor no hay rollo y gracias por tu tiempo
Me temo que no te entiendo del todo. Podrías enviarme a mi correo ([email protected]) un fichero con un ejemplo. No hace falta que sea todo el libro real que estés usando, simplemente uno con dos o tres hojas, unos pocos cambios y lo que necesitarías que se viera en la hoja de control.
Para que entienda bien lo que haces sería interesante disponer de cada hoja duplicada con los valores antes y al final del día. Por ejemplo, para un ejemplo con dos hojas reales 1 y 2, te pediría las hojas 1A y 2A. La hoja 1 es el estado al inicio del día antes de hacer nada, mientras que la 1A es como queda al final. Lo mismo para la 2. Luego en la hoja de control indicas lo que ha de aparecer.
¿Es posible ese ejemplo con unos pocos datos para que lo comprenda?
OK disculpa el retraso, tengo una hoja llamada INDICE donde tengo la lista de las hojas en las que quiero buscar. En cada hoja la columna G5 en adelante tiene la información de la fecha en se cargo esa fila (ya que G1:G4 son el encabezado de cada hoja). Lo que quiero es una macro que me busque en la columna G (comenzando en G5) cual celda coincide con la fecha de HOY, de ser VERDADERO en una hoja llamada CONTROL marque en la celda A la celda G, en B marque la B, en C marque la J y en DE marque la DE (todas de la misma fila) y así sucesivamente.
Espero me hayas entendido bien esta vez y de antemano gracias por tu ayuda
Si he entendido bien, el siguiente código hace lo que pides. Ejecuta la macro Control o asociala a una combinación de teclas.
Es posible que tengas que adaptarla pues he supuesto que los nombres de hojas están en A1, A2...
Option Explicit
Sub Control()
Dim c As Range
'Suponiendo que los nombres de las hojas empiezan en A1 hasta An en
'en la primera hoja del libro llamada INDICE
For Each c In Worksheets("INDICE").Range(Range("A1"), Range("A1").End(xlDown))
LeeEscribeHoja (c.Value)
Next c
End Sub
Sub LeeEscribeHoja(h As String)
Dim f As Double
Dim maxi As Double
Dim maxj As Double
Dim v(4) As Variant
maxi = Worksheets(h).Range("G5").End(xlDown).Row
maxj = Worksheets("CONTROL").Range("a655655").End(xlUp).Row
For f = 5 To maxi
Worksheets(h).Activate
If Format(Now(), "dd-mm-aa") = Format(Cells(f, 7).Value, "dd-mm-aa") Then
v(1) = Cells(f, 7) 'g
v(2) = Cells(f, 2) 'b
v(3) = Cells(f, 10) 'j
v(4) = Cells(f, 4) 'd
Worksheets("CONTROL").Activate
maxj = maxj + 1
Cells(maxj, 1) = v(1) 'g
Cells(maxj, 2) = v(2) 'b
Cells(maxj, 3) = v(3) 'j
Cells(maxj, 4) = v(4) 'd
End If
Next f
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas