Ouverture fichier

Bonjour à tous,

Je fais une macro qui a besoin d'ouvrir un fichier excel pour fonctionner.

Pour cela j'utilise le code suivant pour demander à l'utilisateur le fichier en question :

strACopier = Application.GetOpenFilename(, , "Choisir le fichier à utiliser")

Cette ligne marche très bien mais quand j'exécute le code j'ai une erreur me disant que Excel ne peut pas accéder à ce fichier.

Ce qui m'étonne c'est que cela fonctionne quand le fichier que je veux sélectionner est déjà ouvert et cela fonctionne aussi lorsque que je copie colle le fichier que je veux ouvrir sous un autre nom (je me contente de faire une copie du fichier, je ne modifie rien d'autres).

Si vous avez besoin de plus de précisions ou de clarté, n'hésitez pas.

Merci d'avance

Bonjour Tayrok

Une unique ligne sans le reste du code, ne sert à rien

Merci de joindre un fichier ou le code entier SVP

A+

Bonjour Bruno,

Voici les lignes en rapport avec l'ouverture de mon fichier :

'Définiton des chemins
Set WbAColler = ThisWorkbook
strACopier = Application.GetOpenFilename(, , "Choisir le fichier à utiliser")

'Ouverture des fichiers
Set WbAColler = ThisWorkbook
Set WbACopier = Workbooks.Open(strACopier)

'Copie des valeurs et convertion de texte en nombres
WbACopier.Worksheets("Sheet1").Range("A:X").Copy
WbAColler.Worksheets("Data").Range("A1").PasteSpecial Paste:=xlPasteValues

Ensuite j'utilise dans le reste de ma macro la version copiée du fichier (dans le workbook WBAColler, worksheet Data).

Bonjour Tayrok

Pour moi ce n'est pas cette ligne qui est en cause, car elle fonctionne sans problème

En revanche, je modifierais

WbACopier.Worksheets("Sheet1").Range("A:X").Copy

Par

WbACopier.Worksheets(1).Range("A:X").Copy

Je pense que potentiellement, le soucis est plus là

A+

Bonjour Bruno,

merci pour ta réponse.

Je n'ai pas du être assez précis dans mon premier message.

Ce que je fais c'est :

- Je travaille sur un fichier A, et pour cela je dois copier une feuille du fichier B dans le fichier A.

- Je demande à l'utilisateur de sélectionner dans ces documents le fichier B, j'enregistre le chemin puis j'ouvre le fichier B et je copie la page qui m'intéresse dans le fichier A.

J'arrive bien à récupérer le chemin du fichier B après la sélection de l'utilisateur mais le problème est pour ouvrir le fichier B. Lorsque que le fichier B n'est pas actuellement ouvert sur l'ordinateur de l'utilisateur, ce dernier refuse de s'ouvrir via mon code. Par contre s'il est déjà ouvert sur l'ordinateur de l'utilisateur, cela fonctionne bien.

Et j'ai fais un test en faisant une copie du fichier B (manuellement avant de lancer la macro), un B'. Et quand l'utilisateur sélectionne B' au lieu de B, cela fonctionne dans les 2 cas (fichier déjà ouvert et non ouvert sur l'ordinateur de l'utilisateur).

Re,

Je suis désolé, mais je ne comprends pas ce qui ne fonctionne pas

strACopier = Application.GetOpenFilename(, , "Choisir le fichier à utiliser")

Chez moi, la ligne ci-dessus récupère bien le chemin et le nom du fichier

Set WbACopier = Workbooks.Open(strACopier)

Cette ligne ouvre bien le classeur sélectionné précédemment

WbACopier.Worksheets("Sheet1").Range("A:X").Copy

Copie bien la plage A:X dans une feuille nommée "Sheet1"

WbAColler.Worksheets("Data").Range("A1").PasteSpecial Paste:=xlPasteValues

Colle bien la page précédemment copiée dans la feuille nommée "Data" à partir de A1

Donc je ne vois pas ce qui en colle pas

Je n'irais pas plus loin... c'est déjà trop sans fichier

Rechercher des sujets similaires à "ouverture fichier"