OVH Cloud OVH Cloud

Liaisons avec un classeur non ouvert

3 réponses
Avatar
Gil HASH
Bonjour à tous
Peut-on travailler en VBA sur plusieurs classeurs sans les ouvrir?
Et si oui, comment libeller en VBA l'adresse de la cellule L1C1 de la
feuille Feuille01 du classeur Classeur01 situé dans le répertoire C:\Dossier
du disque dur?
Jusqu'à présent, j'utilisais la syntaxe
Workbooks("Classeur01").Sheets("Feuille01").Cells(1,1).value
Qui marchait à condition d'ouvrir au préalable les classeurs concernés.
Question subsidiaire sans doute posée 1000 fois : comment être sûr que le
classeur se trouve à l'endroit voulu sur le disque dur?
Sans traiter en bourrin en interceptant les messages d'erreur ;-)

3 réponses

Avatar
JpPradier
Bonjour Gil HASH

Pour la question subsidiaire, tu peux utiliser Dir qui te renvoie un string vide si le fichier
n'existe pas :

ExistFichier = Dir("C:DossierClasseur01.xls")

Pour la première question utilise la macro de J Walkenbach ici :

http://j-walk.com/ss/excel/tips/tip82.htm

j-p
Avatar
Gil HASH
Merci c'est exactement ce que je cherche
Par contre il utilise les références avec des lettres style A1 qui me posent
problème en programmation (boucles)
Comment modifier la formule pour utiliser les références type
Cells(Lignes,Colonne)
(Et d'ailleurs pourquoi il y a 2 Range?)

arg = "'" & path & "[" & file & "]" & sheet & "'!" &
Range(ref).Range("A1").Address(, , xlR1C1)
Avatar
isabelle
bonjour Gil HASH,

arg = "'" & path & "[" & file & "]" & sheet & "'!" &
Range(ref).Cells(Lignes, Colonne).Address(, , xlR1C1)

isabelle


Merci c'est exactement ce que je cherche
Par contre il utilise les références avec des lettres style A1 qui me posent
problème en programmation (boucles)
Comment modifier la formule pour utiliser les références type
Cells(Lignes,Colonne)
(Et d'ailleurs pourquoi il y a 2 Range?)

arg = "'" & path & "[" & file & "]" & sheet & "'!" &
Range(ref).Range("A1").Address(, , xlR1C1)