Ouvrir des fichiers qui ont le nom des feuilles

  • Initiateur de la discussion Guy
  • Date de début
G

Guy

Guest
Bonjour,


Bon dimanche à tous,

Félicitation pour cet excellent forum


Je sollicite coup de main pour une macro :


J'ai un fichier Excel qui possède plusieurs feuilles.

Ce fichier Excel est généré chaque jour par une macro qui crée une 1ere feuille nommée 'Export' et toutes les autres feuilles correspondants à des noms de fichier. doc avec lesquels il faut faire des publipostages.

Je souhaite donc avoir une macro pour ouvrir tous les fichiers.doc (correspondant à toutes les feuille du classeurs, sauf celle nommée ' Export '.

Bien sur tous les fichier.doc sont dans le même répertoire.


Merci d'avance

Guy
 

MichelXld

XLDnaute Barbatruc
bonjour Guy

tu peux tester cette macro
la procedure boucle sur tous les onglets du classeur et ouvre les fichiers .doc portant le meme nom (sauf 'Export' ) .les documents Word doivent etre dans le meme repertoire que le classeur

Code:
Sub ouvertureConditionnelle()
Dim i As Byte
Dim Fs As Object

Set Fs = CreateObject('Scripting.FileSystemObject')

For i = 1 To Sheets.Count
    If Sheets(i).Name <> 'Export' Then
    'verifie si le fichier à ouvrir (.doc) existe
    'dans cet exemple le classeur Excel et les .Doc sont dans le meme répertoire
    If Fs.FileExists(ThisWorkbook.Path & '\\' & Sheets(i).Name & '.doc') = True Then _
    ThisWorkbook.FollowHyperlink ThisWorkbook.Path & '\\' & Sheets(i).Name & '.doc', , True
    End If
Next i

End Sub


bonne soiree
MichelXld
 
G

Guy

Guest
Bonjour,

Je me demandais si l'excellent code de Michel pouvait être adapté car mes fichiers .doc sont dans un autre répertoire que le fichier qui contient la macro.

En fait ma macro est dans un .xla qui est lancé depuis un icône de la barre menu d'Excel.

Donc le répertoire de la macro complémentaire n'est pas le même que les fichiers .doc

J’ai bien essayé d’adapter le code de Michel mais sans succès.

Cordialement

Guy
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Michel, Guy, le Forum

Encore vite fait une mini contribution, avant de filer.

Guy, Essaies comme ceci :

Option Explicit

Const ThePath As String = 'I://MC_PROD//Stats//Reported_Assets//Daily//'

Sub OuvertureConditionnelle()
Dim i As Byte
Dim Fs As Object



Set Fs = CreateObject('Scripting.FileSystemObject')

For i = 1 To Sheets.Count
&nbsp; &nbsp;
If Sheets(i).Name <> 'Export' Then
&nbsp; &nbsp;
'verifie si le fichier à ouvrir (.doc) existe
&nbsp; &nbsp;
'dans cet exemple le classeur Excel et les .Doc sont dans le meme répertoire
&nbsp; &nbsp;
If Fs.FileExists(ThePath & Sheets(i).Name & '.doc') = True Then _
&nbsp; &nbsp; ThisWorkbook.FollowHyperlink ThePath & Sheets(i).Name & '.doc', ,
True
&nbsp; &nbsp;
End If
Next i

End Sub


NB les 'Anti-Slash' ne passants pas sur ce Forum, tu remplaces les '//' dans la Constante (adaptée à ton chemin de répertoire)

Bonne Soirée
@+Thierry
 
G

Guy

Guest
Bonjour,


Cette macro fonctionne très bien seule mais si je l’exécute en second, après une autre macro, elle bloque et il y a le message :

Erreur d’exécution ' 9 '

L’indice n’appartient pas à la sélection


Merci d’avance pour le coup de main

Guy
 

Discussions similaires

Réponses
16
Affichages
705

Statistiques des forums

Discussions
312 613
Messages
2 090 234
Membres
104 463
dernier inscrit
lbo