• Initiateur de la discussion Initiateur de la discussion Nanir
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nanir

XLDnaute Occasionnel
Bonjour le forum,

J'ai un petit cas à vous soumettre.

J'ai une macro qui consiste à ouvrir des fichiers, copier une colonne, puis coller la colonne dans un autre fichiers les unes après les autres.

Cette macro fonctionne parfaitement si les fichiers sont en local, c'est à dire sur C:

Par contre lorsque le chemin est sur le réseau de mon taf, la macro se met en erreur disant qu'elle ne trouve pas les fichiers.

Celon vous, est ce que cette erreur provient du chemin de la macro ou du réseau? Et comment corriger cette erreur?

En pièce jointe, la macro.

Merci de votre aide,
Cordialement,

[file name=macro_20060516085911.zip size=2287]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/macro_20060516085911.zip[/file]
 

Pièces jointes

Bonjour Nanir, le forum

Chdir ne peut changer le lecteur en cours mais uniquement le répertoire actif du lecteur précisé.

utilises avant ChDrive pour changer le lecteur
sinon tu peux adresser directement tes fichiers en utilisant le chemin récupéré par activeworkbook.path pour le classeur actif ou thisworkbook.path pour le classeur contenant la macro exécutée, plus pratique à utiliser sur un lecteur réseau non défini en ressource disque.

Cordialement, A+
 
Merci beaucoup pour ton conseil!
Voici ce que j'ai fais :

Avant :
For ICount = 1 To UBound(fNames)
ChDir 'U:\\alain\\'
Workbooks.Open Filename:=fNames(ICount, 1)
Set Neuf = ActiveWorkbook
Set Cole = Range('E:E')
Cole.Copy Lastcol
Neuf.Close
Last = Range('IV1').End(xlToLeft).Column (ICount) + 1
Set Lastcol = Cells(1, Last)
Next ICount
End Sub

Après:
For ICount = 1 To UBound(fNames)
Workbooks.Open ThisWorkbook.Path & '\\' & fNames(ICount, 1)
Set Neuf = ActiveWorkbook
Set Cole = Range('E:E')
Cole.Copy Lastcol
Neuf.Close
Last = Range('IV1').End(xlToLeft).Column + (ICount) + 1
Set Lastcol = Cells(1, Last)
Next ICount
End Sub

Maintenant la macro arrive à trouver et ouvrir tous les fichiers!
Super!
Encore merci!
 
Bonjour

on peut simplifier en référençant directement à l'ouverture
Egalement, il vaut mieux spécifier la feuille dont tu veux récupérer la donnée sinon tu la récuoérera sur la feuille active à l'ouverture qui n'est pas forcément celle que tu veux
on peux en même temps éviter la référence cole qui ne sert pas à grand chose dans ce cas.

Cordialement, A+
Code:
For ICount = 1 To UBound(fNames)
Set neuf = Workbooks.Open(ThisWorkbook.Path & '' & fNames(ICount, 1))
neuf.Sheets(1).Range('E:E').Copy Lastcol
neuf.Close False
Last = Range('IV1').End(xlToLeft).Column + (ICount) + 1
Set Lastcol = Cells(1, Last)
Next ICount
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
33
Affichages
713
D
Réponses
4
Affichages
312
DidPouAxi
D
Retour