Non, ils ne doivent pas nécessairement être ouverts au lancement de la procédure. On peut ouvrir, opérer et refermer.
Pour des valeurs, il existe des solutions (que je ne maitrise pas) sans ouvrir mais pour le contenu, j'en doute un peu.
Exemple en ouvrant (code à placer dans le fichier B donc) :
sub rangecopy()
with workbooks.open(fichierA)
thisworkbook.sheets(1).range("B3:B5").value = .sheets(1).Range("A3:A5").value
.close true
end with
End Sub
où fichierA est le chemin complet du fichier A.
Cdlt,
Edit : Thauthème ! C'est bien, on dit exactement la même chose au moins...