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:=xlPasteValuesEnsuite 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").CopyPar
WbACopier.Worksheets(1).Range("A:X").CopyJe 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").CopyCopie bien la plage A:X dans une feuille nommée "Sheet1"
WbAColler.Worksheets("Data").Range("A1").PasteSpecial Paste:=xlPasteValuesColle 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