crear un txt con contenido de una celda

6 envíos / 0 nuevos
Último envío
xxxg00w0
Imagen de xxxg00w0
Offline
última acción: Hace 7 años 1 mes
alta: 20/02/2017 - 19:05
Puntos: 45
crear un txt con contenido de una celda

 

Buen dia tengo una lista de x numero de celdas en una sola columna por ejemplo 4 a1, a2, a3 y a4 en cada celda tengo un valor en texto y lo que ando buscando es que se tome el valor de cada celda y se genere un txt cada cierto tiempo con el valor de la celda sobre escribiendo el nombre del archivo por ejemplo la tabla dice

Perro

Gato

Perico

Cerdo

 

Y quiero que en un archivo de nombre animales.txt cuando se recorra la lista primero tenga Perro, después de cierto tiempo limitado por alguna variable animales.txt diga perro luego gato hasta llegar a cerdo y volver a repetir el proceso por un tiempo establecido también, entonces tendría una variable de tiempo total que necesito que se esté ejecutando el proceso y otra de tiempo en que estará disponible el contenido de la celda en el documento de texto

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Hola La verdad es que lo que

Hola

 

La verdad es que lo que pides es raro.

¿El archivo de texto existe?

¿Tiene más texto o solamente pone el nombre del animal?

Y, por curiosidad... ¿Para qué quieres cambiar un archivo de texto cada poco tiempo?

 

Por experiencia, cuando quieres hacer algo que se ejecute cada x tiempo, muchas veces es mejor programarte el evento al abrir el excel, y generar una tarea programada que arranque el excel. Luego desde el VBA deberías cerrar el archivo para que la próxima vez que se lance la tarea programada lo pueda arrancar.

 

Aun así, yo no utilizaría Excel para esto, mejor me haría un script en python.

 

Un saludo

xxxg00w0
Imagen de xxxg00w0
Offline
última acción: Hace 7 años 1 mes
alta: 20/02/2017 - 19:05
Puntos: 45
gracias

primero que nada muchas gracias por tomarte el tiempo de revisar mi pregunta, son cosas raras que luego hago con archivos incluzo llegue a esta mini rutina por asi decirlo la cual de seguro se puede mejorar de muchas formas pero poco a poco ira mejorando supongo

 

Sub animales()
Dim canrow As Integer
Dim nombre As String
Dim celda As Integer
Dim sNewFilename As String ' Nuevo nombre de texto

sNewFilename = "C:\prueba.txt"

celda = 1
canrow = 0
uf = Sheets("hoja1").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To uf
  If Sheets("hoja1").Cells(i, 1) <> Empty Then
  nombre = Hoja1.Cells(celda, 1)
  Open sNewFilename For Output As #1
  dato = nombre
  Print #1, dato
  Close #1
  Application.Wait (Now + TimeValue("00:00:05"))
  celda = celda + 1
  canrow = canrow + 1
  End If
Next i

End Sub

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Prueba a poner la apertura y

Prueba a poner la apertura y cierre del fichero fuera del bucle for. De esta manera, el archivo (que es siempre el mismo) lo abres una vez para editarlo, y cada vez que haces un print, lo añade al texto existente. Finalmente, cuando has terminado todo el bucle, cierras el archivo.

De esta manera, al no acceder al disco cada vez, la rutina será mucho más rápida, te evitas el Application.Wait, y debería darte el resultado que creo que buscas.

Por cierto, la variable canrow no la utilizas en ningún momento. Solo la declaras, le asignas valor 0 y luego vas sumando 1 al final de cada bucle, pero no haces nada más con ella.

 

Un saludo

xxxg00w0
Imagen de xxxg00w0
Offline
última acción: Hace 7 años 1 mes
alta: 20/02/2017 - 19:05
Puntos: 45
gracias de nuevo

ando intentando mejorar la rutina tiene varias fallas lo malo que necesito tener en el txt cierto tiempo el contenido de la celda y luego remplazarlo por eso lo maneje asi, entonces ando intentando mejorar la rutina tomare en cuenta los comentarios hechos para mejorarla y hacerla mas eficiente

radmandu (no verificado)
Imagen de radmandu
si y yo utilizaria a la nasa

si y yo utilizaria a la nasa para que lo haga. te estan preguntando por vba, no python, salame