Ayuda con código para eliminar columnas sin datos en las celdas de 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
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 de hectorireyes
1