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

Como saber si un txt esta abierto desde una macros en excel?

Estas en el tema de Como saber si un txt esta abierto desde una macros en excel? en el foro de Ofimática en Foros del Web. Tengo un formulario con varios combobox todos se actualizan y llenan con la info de un txt. al abrir el formulario. El txt tiene la ...
  #1 (permalink)  
Antiguo 21/07/2006, 13:36
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Busqueda Como saber si un txt esta abierto desde una macros en excel?

Tengo un formulario con varios combobox todos se actualizan y llenan con la info de un txt. al abrir el formulario.
El txt tiene la info de los Rut, Razon Social/Apellido Paterno, Apellido Materno, Nombre y diversas claves.

Cada combobox tiene su propia información del txt y mi idea es que al seleccionar algun dato del combobox1 que contiene la info del rut, en los siguientes como combobox2 me aparezca el dato de la razon social, y asi sucesivamente hasta llegar a las claves que se llenan en unos textbox, les muestro la sintaxis del combobox1

Private Sub RUT_Click()
RUT.Value = UCase(RUT.Value)
If Len(Dir$("C:\Claves\Claves Clientes.txt")) Then
Open "C:\Claves\Claves Clientes.txt" For Input Access Read As 1
Do While Not EOF(1)
Input #1, RUTS, APP_RAZ, APM, NOMBRES, CLAVE, SII, CLAVE_TESORERIA, clave_afc
If RUT.Value = RUTS Then
Buscar.Razon.Text = APP_RAZ
Buscar.Materno.Text = APM
Buscar.Nombre.Text = NOMBRES
Textbox1.text = CLAVE
End If
Loop
Close #1
End If
End Sub

De esta manera me funciona bien, sin embargo cuando no se sabe el rut quiero que puedan buscar por el nombre o apellido materno o razon social, y al poner la misma sintaxis cambiando desde luego el resultado de los datos y eso... pues siempre me sale que el archivo ya esta abierto.

Por eso necesito saber de que manera puedo comprobar si el archivo se encuentra abierto, para poder cerrarlo y que cumpla con la busqueda que necesito.

La sintaxis es bastante ambigua pero no se mucho del tema, soy bastante nueva, y además tiene que funcionar en el VB de Excel.

Les explicare con más detalle por que uso combobox y no cuadros de texto.
La razon es simple por que quiero que al ingresar por ejemplo los primeros numeros o letras comienze a buscar si hay alguien con esos datos, es decir... por ejemplo
al teclear 15... el combobox me rellena con el primer rut que tiene que comienza con 155555541-1, y que al mismo tiempo me arroje de inmediato los datos a los demás combobox....
Por que uso combobox en los demás... por que la consulta no siempre será sabiendo el rut, puede que solo sepan el nombre, o la razon social, o el apellido materno... al darle la misma aplicación a todos puedo buscar por la info segun el dato que tenga...
Lo unico que me interesaria poner en textbox serian las claves, ya que es lo que ando buscando.
Al darle la misma atribución a todos los combobox procedo a abrir el archivo txt, con la misma sintaxis que te explique al comienzo.
Si es posible saber si el archivo esta abierto, de que manera le puedo dar la instrucción para que me compruebe que los datos que tecleo en el combobox estan en el txt...
Por eso pensaba en que asi como le doy la instrucción de revisar si existe o no el archivo txt... tal vez tambien se podia dar la instrucción para saber si el archivo estaba abierto o cerrado.
He cambiado la numeración de 1 a FreeFile y no hay mejoras siempre da el error 52 o 55.
Alguien tiene una sugerencia que no implique usar controles para confirmar la busqueda, o hacer una base de datos en access?
De antemano se agradece cualquier buena respuesta.
  #2 (permalink)  
Antiguo 23/07/2006, 08:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 296
Antigüedad: 19 años
Puntos: 0
hjajajajjaja no caxo niuna compadre
__________________
¿Quién es ésta que se muestra como el alba,
Hermosa como la luna,
Esclarecida como el sol,
Imponente como ejércitos en orden?
  #3 (permalink)  
Antiguo 24/07/2006, 01:49
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
Aquí va una opción:
Código:
'Creamos la variable global llamada "fichero_abierto", que puede tomar valor verdadero (true) o falso (false)
Public fichero_abierto As Boolean
Inmediatamente después de abrir el fichero de texto, añades esta línea:
Código:
fichero_abierto = true
Cuando hayas acabado de trabajar con el fichero, y justo después de cerrarlo, le pones el valor a false:
Código:
fichero_abierto = false
Para que no te salga el mensaje de que el fichero ya está abierto, antes haces una comprobación del estado de la variable global:
Código:
if fichero_abierto = false then
    'Abres el fichero y trabajas con él, porque está cerrado
end if
Salu2
  #4 (permalink)  
Antiguo 25/07/2006, 15:55
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 4 meses
Puntos: 0
Gracias por la respuesta, es justo lo que necesitaba, solo que ahora me da otro problema... me manda error 52, y por el momento estoy casi igual que al principio
  #5 (permalink)  
Antiguo 26/07/2006, 00:27
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 11 meses
Puntos: 144
Si pudieras especificar un poco más...

Editado:
Mira lo que pone aquí respecto al error 52.

Última edición por 3pies; 26/07/2006 a las 04:48
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 13:53.