Pregunta complicada, creo...

Hola experto
Tengo una pregunta que llevo varios días intentado hacer y no l consigo.
A ver tengo una libro con varias hojas. Una de estas es trimestre uno. En fila tengo puesto transporte1, trasporte 2, transporte 3 ... Así varios (unos 30) y en columna lunes, martes, ..., domingo. El día que se una un transporte se pone la cantidad
bien lo que a mi me interesa es poder eliminar las columnas que no tengan datos, es decir, que si no se una un transporte no salga en la tabla. Lo que yo he hecho para eliminar las columnas es hacer un sumatorio por columnas llamado "total". Si total es cero hago el siguiente lazo:
Sub elimina()
i = 3
While i < 40
If Cells(1, i).Value = 0 Then
Cells(1, i).Columns.Delete
End If
i = i + 1
Wend
End Sub
Hasta aquí bien. Mi problema es que si ahora cambio los datos de la tabla esta no se me actualiza, es decir, si inicialmente no transponte con transporte 1, y después lo quiero cambiar esta columna ya se me ha borrado y no consigo que me vuelva a aparecer. Lo he intentado pasándolo de una hoja a otra copiando pegando corriendo "elimina" y nada,
otra cosa que he probado (que para las gráficas me funciona perfectamente es hacer una macro que me transponga la matriz (es una matriz no valores lo cual lo complica todo) y aplicando un autofiltro "no vacíos" a la calumna "total", lo cual me funciona perfectamente ya que en la tabla que transpongo tengo todavía todas las columnas y al trasponerlo obviamente también, por lo que al aplicar el filtro lo aplico sobre toda la matriz inicial, no se si así seria posible poder hacerlo, pero no lo consigo
ayudame por favor!
Gracias de adelantado

2 Respuestas

Respuesta
1
Me doy una idea de lo que me consultas, pero seria mejor darte una respuesta contu propio archivo o un ejemplo similar que me mandes a mi correo. Mi correo es [email protected], espero tu respuesta para ayudarte mejor a solucionar tu problema o darte opciones.
Respuesta
1
Espero esto sea lo que buscas
Sub elimina()
i = 3
While i < 40
If Cells(1, i).Value = 0 Then
Cells(1, i).Columns.Hidden = True
Else
Cells(1, i).Columns.Hidden = False
End If
i = i + 1
Wend
End Sub
Esto lo que hace es ocultarlas no eliminarlas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas