Foros del Web » Soporte técnico » Ofimática »

Problemas con celdas vacias

Estas en el tema de Problemas con celdas vacias en el foro de Ofimática en Foros del Web. Hola tod@s! Tengo una Macro que a partir de una hoja de calculo base, con miles de datos, me filtra de acuerdo a ciertos parametros ...
  #1 (permalink)  
Antiguo 26/09/2008, 03:58
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Problemas con celdas vacias

Hola tod@s!

Tengo una Macro que a partir de una hoja de calculo base, con miles de datos, me filtra de acuerdo a ciertos parametros y me copia en otra hoja como valores las celdas resultantes. Esto es, que de un archivo inicial de alrededor 11,000 filas, genero uno nuevo, con la info relevante para cada caso, con unas 200 filas (El nro de filas resultantes nunca es fijo...). El problema es que esta nueva hoja de 200 filas queda pesando 28,0 MB!!!! 10 veces mas que el archivo original. Lo que procedo a hacer es borrar las filas en blanco manualmente, es decir, selecciono desde la fila 201 hasta el final y suprimo..Listo!! el archivo pesa ahora 300KB.
Realmente no entiendo cual es la informacion que el archivo me copia en las celdas en blanco.. y no he logrado encontrar alguna manera de incluir en la macro una operacion que me seleccione estas filas despues de la ultima con valores y me las suprima.
Alguien de uds tiene casos similares o sugerencias?? Les agradeceria...

Saludos
  #2 (permalink)  
Antiguo 26/09/2008, 08:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Problemas con celdas vacias

¿Podríamos ver la función que hace el paso entre las dos hojas?. Así será más fácil ayudarte.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 29/09/2008, 03:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con celdas vacias

Hola,
Mi macro esta escrita de la siguiente manera:
Como puedes ver es simplemente copiar datos y pegarlos en una nueva hoja, para darles un formato especial.
Espero puedan ayudarme, gracias!!

Cells.Select
Selection.Copy
Workbooks.Add
Range("A1").Select
ActiveSheet.Paste
Range("A7").Select
Range("J1:J4").Select
Selection.ClearComments
Columns("O:O").EntireColumn.AutoFit
ActiveWindow.SmallScroll Down:=189
Rows("700:700").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Delete Shift:=xlUp
Range("A8").Select
Range("A8:M8").Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$O8=""kritisch"""
Selection.FormatConditions(1).Interior.ColorIndex = 44
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$O8=""verschoben"""
Selection.FormatConditions(2).Interior.ColorIndex = 37
Selection.Copy
Range("A9:M9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("A8").Select
  #4 (permalink)  
Antiguo 29/09/2008, 14:09
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Respuesta: Problemas con celdas vacias

Hola! polig.
Veo un par de contrasentidos que -quizás- expliquen tus problemas:

Por un lado dices que tras el filtrado copias "como valores" las celdas resultantes...
Sin embargo, las siguientes líneas:

Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste


no están "pegando valores" sino todo el contenido completo de las celdas en cuestión, incluyendo las fórmulas que contengan.

Luego, surgen dos comentarios iniciales:

a) ¿Por qué Cells.Copy (o sea: toda la hoja completa) y no sólo el rango producto del filtrado?
b) ¿Por qué ActiveSheet.Paste y no Selection.PasteSpecial Paste:=xlPasteValues?

Comienza por ver esas cuestiones y luego nos cuentas.
Saludos, Cacho.
  #5 (permalink)  
Antiguo 01/10/2008, 00:56
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con celdas vacias

Hola Cacho! Muchas gracia spor tu sugerencia.
Estuve revisando nuevamente el proceso, pero no logro que la macro me copie unicamente las celdas con datos. En la macro inicial copio toda la hoja parapegarla tal cual; asi aseguro que todos los datos, independientemente del numero de filas, queden copiados. Ahora intente con la siguiente macro:

Range("A1:V1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Workbooks.Add
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A5").Select
End Sub

Cuando lo hago manualmente, la doble Selection.End down copia exactamente lo que necesito, pero al ejecutar esa marcro solo logro copiar los encabezados; las celdas filtradas no quedan! Por esta razon fue que decidi escribir la macro con copiar toda la hoja, con el problema resultante del tamanno del archivo.
Como hacer entonces para que una marcro me copie solo las celdas que tienen datos sin tener que copiar toda la hoja? El numero de filas con datos es siempre diferente... lo unico constante son los encabezados, que van de la fila 1 a la 7.
  #6 (permalink)  
Antiguo 01/10/2008, 02:28
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
De acuerdo Respuesta: Problemas con celdas vacias

Evalúa lo siguiente:

En toda base de datos hay campos (columnas del Excel) que pueden tener información o estar en blanco.
Pero hay columnas que -sin ningún lugar a dudas- SIEMPRE tienen información. Entonces: ¿Cuál de tus columnas SIEMPRE tiene información?

Supongamos que tal columna es la "B".

Lo que debes hacer es -antes del proceso de filtrado- localizar tu última fila con datos del siguiente modo:

UltimaFila = [B65536].End(xlUp).Row


Y luego del proceso de filtrado, en lugar de:
Cells.Select
Selection.Copy


puedes incorporar:
Range("A1", "V" & UltimaFila).Copy

siguiendo con:
Workbooks.Add
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A5").Select
End Sub



Prueba con eso y luego nos cuentas.

Saludos, Cacho.
  #7 (permalink)  
Antiguo 07/10/2008, 08:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 6
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problemas con celdas vacias

Super! no me sabia la de encontrar la ultima fila... esa fue la que me arreglo el problema.
Gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:20.