Como crear una rutina en la cual verifique si el archivo esta abierto

Acudo a ustedes como expertos que son en Excel o vba

Necesito crear una rutina en la cual verifique si un archivo esta abierto, si lo esta que prosiga a abrir otro archivo, si no esta abierta que copie la información dentro del mismo.

Y así sucesivamente debe de verificar, abrir copiar y cerrar todos los archivos de una lista determinada.

1 respuesta

Respuesta
1

¿Podrías explicar un poco cual es tu problemática? Tal vez la solución que pides no es la mas indicada.

Si una vez copiada la información del libro guardas el libro en una subcarpeta llamada PROCESADOS ya no tendrás el problema de saber de cuáles has copiado la información y de cuales no

El código será algo así:

'CÓDIGO PARA ABRIR EL LIBRO...
.
.
Set w = ActiveWorkbook
ruta = Application.ActiveWorkbook.Path
ww = ActiveWorkbook.name
'CÓDIGO PARA COPIAR LA INFORMACIÓN.....
.
.
    ActiveWorkbook.Close SaveChanges:=False
    FileCopy ww, ruta & "\PROCESADO\" & ww
    Kill ww
    End Sub

Gracias por tu pronta respuesta.

El verdadero problema es:

Tengo un peque;o modulo a base de macros en el cual se loguea varios usuarios, cada usuario tiene un archivo diferente en el que trabajan ingresando información. A diferentes horas del día.

Necesito que esa información ingresada en cada archivo se consolide en uno solo a cada cierto horario.

Eso quiere decir que debe de verificar primero si el primer archivo esta abierto, si esta abierto saltar ese archivo y pasar el siguiente usuario(archivo), si el primer archivo no esta abierto, abrirlo, copiar la información que contiene, pegarla en el archivo principal, borrar la información del archivo del usuario, guardar, cerrar y continuar a abir el siguiente usuario(archivo).

Esta rutina se debe de repetir al menos varias veces siendo que estarán ingresando información más de 50 personas.

Espero y halla explicado bien mi problema

Saludos y gracias de antemano

Ok, entonces necesito la siguiente información

- Donde está la lista y una imagen para poder ver cual es su valor

- Si en la lista no sale la ruta, la ruta donde están los archivos

- Que se tiene que copiar y en donde

En el archivo principal tengo las rutas de cada archivo, el proceso para copiar yo lo crear, ya que simplemente es pasar varias columnas de información

Este código:

Sub Comprobar()
Application.DisplayAlerts = False
Range("F2").Select
'Sheets("Hoja1").Range("F2").Select
Do
Path = ActiveCell.Value
Set Testworkbook = Nothing
On Error Resume Next
Set Testworkbook = Workbooks(Path)
On Error GoTo 0
If Testworkbook Is Nothing Then
Workbooks.Open Filename:=Path, Password:="XXXXXXX"
'CODIGO PARA COPIAR-PEGAR
ActiveWorkbook.Close SaveChanges:=False
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = ""
Application.DisplayAlerts = True
End Sub

Lo tendrás que ejecutar desde la hoja donde están las rutas, sinó tendrás que cambiar ("Hoja1") de la línea:

Sheets("Hoja1"). Range("F2").Select

por el nombre de tu hoja

Por otro lado, supongo que la apertura de los archivos tiene password, por eso he puesto:

Workbooks.Open Filename:=Path, Password:="XXXXXXX"

donde tendrás que cambiar XXXXXX por el password que corresponda. Si no tiene password borra , Password:="XXXXXXX" y ya está

Siguiendo, por lo que dices, el código para copiar-pegar ya lo tienes o eres capaz de escribirlo. Deberás ponerlo donde te he indicado y el método que uses para copiar-pegar debe dejar activo el libro abierto o activarlo después, para que la instrucción:

ActiveWorkbook.Close SaveChanges:=False

cierre el libro adecuado.

Prueba y comentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas