[Déplacé .Net --> VBA] Pb VBA macro

Résolu
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 16 juil. 2009 à 14:54
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 17 juil. 2009 à 16:09
Bonjour à tous,

j'ai un léger souci avec une macro VBA ss excel 2003.

Je demande à ma macro de récuperer sur une feuille "PTF" les données d'une autre feuille dans un autre classeur excel nommé "Source". Je lui indique donc le chemin à suivre pour sélectionner le fichier en question. voici le code :


[i]Sub Macro1 ()
Dim fichiera, fichierb As Variant

fichiera = ActiveWorkbook.Name

ChDir "P:\Source"
Workbooks.Open Filename:= _
"P:\Source", UpdateLinks:=0

fichierb = ActiveWorkbook.Name

Dim fin, i, j As Integer

Sheets("PTF").Select/i

Mais à chaque fois que j'active ma macro, je dois quand même lui indiquer manuellement le chemin à suivre. il ne retrouve pas tt seul le fichier : c'est assez long à chaque fois pour retrouver le fichier....!!!!

Merci de votre aide

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 juil. 2009 à 15:33
Salut

J'ai eu un souci identique récemment.
Le problème vient du comportement de Excel modifie de lui même le contenu des cellules selon que le fichier externe est ouvert ou pas :
Si le fichier externe n'est pas ouvert (exemple de cellule) :
= 'C:\Documents and Settings\Compta\Mes documents\CLIENTS\2008\[2008-Factures.xls]Mon Client'!$V$2
Si le fichier externe est ouvert, la cellule devient :
= '[2008-Factures.xls]Mon Client'!$V$2
C'est à dire qu'il supprime le chemin puisque la donnée est accessible localement

Le problème, c'est que si l'on réutilise la cellule alors que le fichier externe est à nouveau fermé, Excel demande le chemin.
Il faut donc maintenir la cellule|formule avec le chemin complet ET ne jamais ouvrir les deux fichiers dans la même instance de Excel.

Sinon, dans ton code :
ChDir ,ne s'occupe QUE de changer de répertoire.
Si le disque n'est pas le même que celui de Excel, il faut avant faire un ChDrive
Mais cette manip (ChDrive et ChDir) n'est pas obligatoire dans la mesure où tu ouvres un fichier en spécifiant le chemin complet (Disque + répertoire + nom complet du fichier)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
16 juil. 2009 à 15:37
Salut,

Si ton fichier s'appelle source.xls et qu'il se trouve sur P:\
Remplace déjà ChDir "P:\Source" par ChDir "P:"

De plus je ne pense pas que cette instruction chdir soit nécessaire.
Workbooks.Open Filename:= "P:\Source.xls", UpdateLinks:=0 devrait fonctionner sans problème.

@+
Steph
0
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
16 juil. 2009 à 16:10
merci steph mais le pb persiste....je vais explorer d'autres solutions merci en tt cas
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
16 juil. 2009 à 16:49
Bonjour juanito37
As-tu remarqué qe linasteph à rajouté :=> .xls à ton nom de fichier ?

Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
17 juil. 2009 à 16:09
merci à tous. j'ai corrigé le code et cela fonctionne. Merci bien
0
Rejoignez-nous