Copiar un rango determinado de valores.

Estoy programando una hoja de cálculo para estructuras y ya está todo bien montadito, ahora, necesito montar un botón que genere un informe de los datos que tengo exportándolos a otro formato.
Sin embargo, necesito que al copiar los datos, sólo seleccione las celdas no vacías de la matriz (Es de 60 x 250) y que copie solo los valores.
Además, he buscado cómo, tras copiarlo a otro libro de Excel, se guarde en un formato distinto (.txt sería el ideal) pero no he podido dar con una buena solución.
El código con el que estoy trabajando por ahora es este:
Sub Botón_Exportar_Viento_Tabulación()
Range("A1:L204").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = True
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename = Application.GetSaveAsFilename
CreateBackup = False
Application.DisplayAlerts = True
End Sub
Pero por alguna razón, aunque funciona "bien" (Copia, pero copia las fórmulas), al momento de guardarlo no importa que me pida nombre, sino que guarda como FALSE.
¿Podrían ayudarme?
De antemano muchísimas gracias.

1 respuesta

Respuesta
1
No entiendo del todo tus explicaciones. Vamos por partes:
- Dices que quieres que te copie las celdas no vacías de un rango, preo por lo que veo copias un rango entero (rectangular) que además no coincide con las dimensiones que dices tener. Para copiar celdas no vacías o bien vas seleccionando por subrangos/areas, si son pocas las celdas vacías o bien recorres el rango y vas copiando celda a celda a otro rango que será menor que el inicial.
- Para que no te copie fórmulas tienes que decirle a Excel, que no lo haga así. Una posibilidad es no usar Paste, sino PasteEspecial e indicarle "solo valores". Un ejemplo:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
- En cuanto a como quieres que te guarde el fichero, tendrás que explicarte mejor. Por el momento solo sé que preferirías guardar como fichero txt. El resto lo tendrás que explicar mejor. Para lo primero un posible código de ejemploes:
ChDir "C:\Documents and Settings\USUARIO\Escritorio"
ActiveWorkbook.SaveAs Filename:= _
"C:\Documents and Settings\USUARIO\Escritorio\Libro1.txt", FileFormat:=xlText _
, CreateBackup:=False
Muchas gracias por responder.
La razón de que los rangos sean distintos es que la matriz de fórmulas arroja resultados dependiendo de ciertas condiciones iniciales, así que el rango puede ser sencillamente de 2 x 2 o del total que mencioné arriba.
Probaré lo que me dices. :D
De nuevo, muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas