Visual Basic para Aplicaciones - Pasar una hoja a un archivo de texto

Life is soft - evento anual de software empresarial
 
Vista:

Pasar una hoja a un archivo de texto

Publicado por Juan Francisco (3 intervenciones) el 15/06/2011 10:59:03
Hola, mi problema es el siguiente.
Necesito pasar todas las celdas de cada hoja de un libro excel a un archivo de texto (e ir anexando los datos de cada hoja al final del archivo de texto).
¿Hay alguna forma de hacerlo mas o menos autmático? ¿alguna función o algo específico?
En caso de tener que recorrer las celdas, ¿cómo iría guardando los datos al txt?

un saludo, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Pasar una hoja a un archivo de texto

Publicado por Antoni Masana (498 intervenciones) el 15/06/2011 12:13:55
Te voy a poner un ejemplo simple. Recorre 3 hojas y las columna A - D i las filas del 1 al 10
Hay otras formas pero con esta puedes controlar como deseas el fichero de texto.


Open "Fichero.TXT" for output as #1
for a=1 to 3
select case a
case 1: Sheets("Hoja-1").Select
case 2: Sheets("Hoja-2").Select
case 3: Sheets("Hoja-3").Select
end select

for V=1 to 10
for H=1 to 4
print #1, Range(chr$(64+H) + mid$(str$(V),2)).Cells; ";";
next
print #1,""
next
next
Close #1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar una hoja a un archivo de texto

Publicado por Juan Francisco (3 intervenciones) el 16/06/2011 09:40:38
Muchas gracias Antoni, lo probaré, pero ahora mi problema sería no coger un número fijo de columnas y/o filas, sino coger todo el contenido de la hoja. Investigaré como poder referirme a esto.

Lo dicho, gracias, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antonio Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Pasar una hoja a un archivo de texto

Publicado por Antonio Masana (498 intervenciones) el 17/06/2011 08:29:51
Si todas las celdas tienen datos (Quiero decir si tienes 15 columnas y en la fila 1 hay datos en toda las celdas o en la columna A hay datos en todas las celdas) puedes hacer algo asi:

V_Fin=1
H_Fin=1
for V=1 to 10^6
IF Range("A + mid$(str$(V),2)).Cells = "" THEN V_Fin=V
next
for H=1 to 10^6
IF Range(chr$(64+H) + "1").Cells = "" THEN H_Fin=H
next

Es lo que hago para tratar una hoja y añadir datos del dia con una macro, busco la primera celda vacia, bueno en realidad es un poco más complejo pero no biene al caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Pasar una hoja a un archivo de texto

Publicado por Antoni Masana (498 intervenciones) el 17/06/2011 08:39:29
Se me olvido un detalle importante y es que en la línea del IF de terminar con : EXIT FOR

1
2
3
4
5
    ' Cuenta el numero de lineas
     For a = 1 To 2 ^ 36
         c_Actual = Range("A" + Mid$(Str$(a), 2)).Cells
         If c_Actual = "" Then n_Lin = a: c_Hasta = Mid$(Str(a - 1), 2)  : EXIT FOR
     Next


' Cuenta el numero de lineas
For a = 1 To 2 ^ 36
c_Actual = Range("A" + Mid$(Str$(a), 2)).Cells
If c_Actual = "" Then n_Lin = a: c_Hasta = Mid$(Str(a - 1), 2) : EXIT FOR
Next

NOTA para el administrador del foro: Lo de insertar codigo no se previsualiza bien o yo no se como funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar una hoja a un archivo de texto

Publicado por Juan Francisco (3 intervenciones) el 28/06/2011 10:41:05
Gracias Antoni, perdona por no haber respondido antes pero he estado con otras cosas.

Me quedo con la idea de contar las columnas y filas antes para después copiar lo que hay. Voy a probar esta idea.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar