VBA combinación de archivos

Hola expertos
Disculpen mi ignorancia, pero se pueden realizar acciones con macros combinado archivos externos, ejemplo si existe los archivos libro1.xls e imagen.jpg en la misma carpeta y quiero hacer una condicional de que si existe el archivo imagen.jpg las celdas (A1:F20) sean de color verde y si no existe de color rojo, haciendo la función de semáforo, teniendo en cuenta que la carpeta esta en un disposivo USB y los puertos USB no son siempre los mismos por lo que las rutas de localización no son siempre las mismas
De antemano gracias y espero me puedan ayudar saludos

1 Respuesta

Respuesta
1
Todo se puede hacer, pero es mejor ir por partes. Mira a ver si te sirve la siguiente función. Es muy sencilla y lo único que hace es chequear si existe un fichero en la misma carpeta donde tienes tu hoja de cálculo, y devolver VERDADERO o FALSO según si existe o no existe.
Function ExisteFichero(NombreFichero)
    NombreFicheroCompleto = ActiveWorkbook.Path + "\" + NombreFichero
    Set fso = CreateObject("Scripting.FileSystemObject")
    ExisteFichero = fso.FileExists(NombreFicheroCompleto)
End Function

Para utilizarla, debes darle a tus celdas A1:F20 un FORMATO CONDICICIONAL, poniendo como condición, no un "Valor de la celda", que es la opción por defecto, sino una "Fórmula". En concreto, pon la fórmula siguiente:
 =ExisteFichero("imagen.jpg")
Espero que te sirva. Si tienes alguna duda, dímelo. En caso contrario, recuerda finalizar la pregunta para poder atender mejor a otras personas.
Hola Experto Ángel
Muchas gracias por responder rápido, pero tuve problemas,
Bueno, el problema está en que las celdas ya están ocupadas por otras funciones, entonces quise cambiar las cosas, para ver si las cosas se puedan hacer más fácil, creé un modulo 1, el cual tiene los siguientes códigos:
Sub Ocultar()
Range("1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20").EntireRow.Hidden = True
End Sub
Sub Mostrar()
Range("1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20").EntireRow.Hidden = False
End Sub
Que tienen la función de ocultar las celdas de las filas de la 1 a la 20, por lo que será la señal de que falta el archivo "imagen.jpg" y mostrar las filas de la 1 a la 20 cuando exista "imagen.jpg"
Voy a ser más específico para que podamos entender mejor, esta es la ruta en donde se encuentran los archivos "libro1.xls" e "imagen.jpg", que es: E:\tlilectic\Excel\pruebaVBA (de la USB), el archivo de Excel "libro1.xls" contiene 4 hojas de calculo (Hoja1, Hoja2, Hoja3 y Hoja4) y una hoja donde se encuentra un gráfico (Gráfico1), las celdas de las filas 1 a la 20 que quiero mostrar u ocultar están solo en la "hoja1", y me gustaría que se ejecutara esta función mostrar/ocultar cuando se abra el archivo "libro1.xls"
De antemano nuevamente Gracias
Sigue los siguientes pasos:
1º Cópiate al Modulo1 la función que te pasé:
Function ExisteFichero(NombreFichero)
    NombreFicheroCompleto = ActiveWorkbook.Path + "\" + NombreFichero
    Set fso = CreateObject("Scripting.FileSystemObject")
    ExisteFichero = fso.FileExists(NombreFicheroCompleto)
End Function

 
2º Créate en ese mismo Modulo1 la siguiente macro:
Sub Auto_open()
     If existeFichero("imagen.jpg") Then
         Mostrar
     Else
         Ocultar
     End If
End Sub

De esa forma, cada vez que abras el libro, se ejecutará automáticamente la macro Auto_open(), que chequeará si existe el fichero y mostrará u ocultará las filas según si existe o no existe.
Prueba y dime. Si tienes problemas te puedo dar una dirección de contacto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas