Macro para exportar un dato a archivo de Texto

16/06/2006 - 15:15 por groman83 | Informe spam
Tengo un libro llamado Facturacion, en dicho libro hay una hoja llamada
'FormatoFactura' y otra llamada 'cliente'. En la celda A:3 de la hoja
'FormatoFactura' guardo el número de facturas que se vayan realizando, y
através de código en una macro voy incrementando el valor de dicha celda:
1,2,3,4,5, etc, etc.
Tengo dos botones:
El primer botón es para crear un nuevo cliente e invoca un formulario para
ingresar la información pertinente a los clientes y que es almacenada en
la hoja con el mismo nombre.
El segundo botón invoca también un formulario para crear nueva factura en
en cual el usuario selecciona cualquier cliente almacenado en la hoja
respectiva para ello, al cual le va a facturar y el resto de la
información del cliente se autocompleta y es llevado a la hoja
FormatoFactura", por último imprime la factura se incrementa el valor en
la celda A:1 que arriba mencioné y listo. De esta manera los usuarios no
tiene que manipular las hojas para nada, sino que todo lo hacen a través
de los formularios.
Esta pequeña aplicación se la envío en modo demo a varias empresas para
que la prueben. Quiero enviarles el archivo para que puedan solo imprimir
5 facturas de prueba y listo, es suficiente para saber si les sirve o no,
si les gusta o no. Por este motivo pienso exportar el consecutivo que se
guarda en la celda A:3 hacia un archivo de texto en la ruta:
%windir%\system\ctrlfl.txt, con el propósito de que cuando el cliente abra
el libro, o presione alguno de los dos botones mencionados yo pueda leer
el número que tiene el archivo de texto (el cual indica el número de
facturas realizadas) y en caso de que ya haya impreso las cinco facturas
de prueba permitidas no lo deje abrirlo o ejecutar alguno de los procesos.
De lo anterior surgen entonces ya dos dudas puntuales:
1) Como exportar el valor de la celda A:3 hacia el archivo de texto
ctrlfl.txt por medio de una macro?
2) Cuando se abra el libro o se presione algún botón de los arriba
mencionados, como puedo leer por medio de una macro el contenido del
archivo de texto en cuestión?

Mil Gracias.

Preguntas similare

Leer las respuestas

#1 David
17/06/2006 - 04:03 | Informe spam
Mejor te refiero a los lugares donde puedes encontrar documentación para
resolver este asunto. Búscate en la ayuda de VBA el comando Open (Open
Statement), Input #, Print # y Write #. Allí encontrarás una información
mucho más amplia de la que te pueda dar aquí y ejemplos para elaborar una
solución "a tu medida".

El comando Open te permite abrir un archivo de texto para efectuar
operaciones de entrada o salida, y te da algunos ejemplos de cómo usarlo.
Esto lo logras mediante un "modo".

Si utilizas el modo Input, podrás leer el contenido de tu archivo utilizando
Input # o Line Input #.

Si utilizas el modo Output, podrás volver a crear el archivo y escribir
datos en él utilizando Print # o Write #.




"Giovanny Roman" escribió:

Mostrar la cita
#2 Héctor Miguel
17/06/2006 - 06:05 | Informe spam
hola, Giovanny !

1) el siguiente ejemplo va agregando lineas en un archivo de texto [p.e. cada vez que se ejecute la impresion POR TU BOTON]
y permite que, independientemente del numero_factura que le hubieran puesto, puedes consultar el numero de lineas anteriores ;)
inicio de codigo ==Sub Grabar_registro_nuevo()
Dim Grabacion As Integer: Grabacion = FreeFile
Open "c:\windows\system\ctrlfl.txt" For Append As #Grabacion
Print #Grabacion, Worksheets("formatofactura").Range("a3")
Close #Grabacion
End Sub

2) para consultar cuantas lineas se han grabado en el archivo anterior...
a) una funcion vba [p.e. en un modulo de codigo normal]...
Function Impresiones(Archivo As String) As Byte
On Error Resume Next
With CreateObject("Scripting.FileSystemObject")
With .OpenTextFile(Archivo, 8)
If Err.Number > 0 Then Impresiones = 0: Exit Function
Impresiones = .Line - 1: .Close
End With: End With
End Function
b) una forma de obtener la cuenta de las lineas 'permitidas'
[p.e. al pulsar alguno de tus botones y/o en el evento '_open' del libro]...
[... otras lineas de tu codigo ...]
Select Case Impresiones("c:\windows\system\ctrlfl.txt")
Case 5
MsgBox "Ya se han impreso las 5 facturas de este ""demo""."
Case Else
MsgBox "No se han alcanzado las 5 impresiones permitidas ;)"
End Select
[... otras lineas de tu codigo ...]

-> puedes sustituir los msgboxes por las acciones 'reales' que necesites ;)
puedes crear 'constantes' para el nombre y ubicacion del archivo 'secreto' ;)

3) para encontrar la variable que apuntas: %windir% [en caso de que no lo tengas 'cubierto'] -?-
consulta acerca de las variables de entorno a traves de la funcion-vba Environ("entorno")
o un objeto Scripting.FileSystemObject
o llamando a alguna API de windows [etc. etc. etc.] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ consulta original __
Mostrar la cita
#3 groman83
20/06/2006 - 18:38 | Informe spam
Buen día Héctor,

¡EXCELENTE!!!!
Utilicé todas tus sugerencias, las acomodé a mis necesidades y funcionó
perfectamente la creación y consulta del archivo de texto. No tuve que
modificarle mucho al código que me enviaste, practicamente nada.
Agradezco tu colaboración y hasta pronto.

Héctor Miguel wrote:

Mostrar la cita
cada vez que se ejecute la impresion POR TU BOTON]
Mostrar la cita
puesto, puedes consultar el numero de lineas anteriores ;)
Mostrar la cita
libro]...
Mostrar la cita
;)
Mostrar la cita
'secreto' ;)

Mostrar la cita
tengas 'cubierto'] -?-
Mostrar la cita
Environ("entorno")
Mostrar la cita
otra llamada 'cliente'.
Mostrar la cita
vayan realizando
Mostrar la cita
etc, etc. ... dos botones:
Mostrar la cita
almacenada en la hoja con el mismo nombre.
Mostrar la cita
hoja FormatoFactura"
Mostrar la cita
mencione y listo [...]
Mostrar la cita
prueben.
Mostrar la cita
para saber si les sirve o no, si les gusta o no.
Mostrar la cita
ruta: %windir%systemctrlfl.txt
Mostrar la cita
botones... leer el numero... de facturas realizadas
Mostrar la cita
no lo deje abrirlo o ejecutar alguno de los procesos.
Mostrar la cita
ctrlfl.txt por medio de una macro?
Mostrar la cita
el contenido del archivo de texto en cuestion?
Ads by Google
Search Busqueda sugerida