Necesito ayuda con una hoja de cálculo Microsoft Excel

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

1 respuesta

Respuesta
1
Vamos de fácil a difícil por que se me ocurren varias alternativas
Prueba primero a ocultar la columna no a borrarla, puedes hacerla Hidden o bien de ancho muy pequeño así - aunque no la ves- existe una columna que es por lo que probablemente te está dando el error.
Si no te va bien coméntamelo y vemos otras opciones.
Hola, gracias por la rapidez, estoy probando con el hidden, que tiewne muy buena pinta, pero al aplicarlo me da un error, seguro que e suna tontería, pero no encuentro el fallo en la line de error, mira a ver cual es por favor
Sub nuevo()
i = 3
While i < 30
If Cells(21, i).Value = 0 Then
ActiveSheet.Column(i).Hidden = True
 End If
i = i + 1
Wend
End Sub
El fallo me salta en esa line de código
Es con 'S' => ActiveSheet.Columns(i).Hidden = True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas