OVH Cloud OVH Cloud

Macro VBA

3 réponses
Avatar
DaJuFarGos
Bonjour, débutant dans le VBA j’essaie de réaliser en partant d’un calendrier annuel (2017) l’ouverture de plusieurs classeurs d’une même semaine (ex : lundi.xls ; mardi.xls etc … hebdo s1.xls)
J’ai donc mis des boutons en place (S1, S2, etc…) avec une macro que j’ai d’ailleurs trouvé sur ce forum.
Sub TousFichiersDunDossierS1()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
NomDossier = "serveurService Indicateur 2017Semaine 1"
If NomDossier = "" Then Exit Sub
Set Dossier = fso.getfolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
Workbooks.Open Filename:=File
Next
End If
End Sub

Fonctionne très bien sur la semaine 1, par contre sur une autre semaine ouvre bien les classeurs mais en ouvre un suplémentaire avec une boite de dialogue "propriétés des liaisons de donnés" et l'arrêt de la macro en surbrillance jaune sur "Workbooks.Open Filename:=File" :

Sub TousFichiersDunDossierS3()
Dim fso As Object, Dossier As Object, NomDossier
Dim Files As Object, File As Object, i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
NomDossier = "serverServiceIndicateur2017Semaine 3"
If NomDossier = "" Then Exit Sub
Set Dossier = fso.getfolder(NomDossier)
Set Files = Dossier.Files
If Files.Count <> 0 Then
For Each File In Files
Workbooks.Open Filename:=File
Next
End If
End Sub

Quenqu'un aurai une solution SVP ?

3 réponses

Avatar
MichD
Bonjour,
Est-ce que le fichier qu'Excel tente d'ouvrir lorsque la macro
s'arrête contient vraiment un ou des liens vers d'autres fichiers?
Dans ta procédure, place le curseur de la souris sur "Open" de
la ligne de code, et appuie sur la touche F1. Tu vas voir que cette
la méthode "Open" contient beaucoup de paramètres dont : UpdateLinks
auquel tu peux affecter l'une de ces valeurs :
Valeur Signification
0 Les références externes (liens) ne sont pas mises à jour à l’ouverture du classeur.
3 Les références externes (liens) sont mises à jour à l’ouverture du classeur.
Modifie ta ligne de code "Workbooks.Open Filename:=File" comme ceci :
"Workbooks.Open Filename:=File",UpdateLinks:=0
Les mises à jour des données ne seront pas faites à l'ouverture, mais comme tu
n'as qu'un fichier ayant des liens, tu pourras le faire dès que ce dernier sera ouvert
manuellement si nécessaire.
MichD
Avatar
dajufargos
Le lundi 13 Février 2017 à 14:08 par MichD :
Bonjour,
Est-ce que le fichier qu'Excel tente d'ouvrir lorsque la macro
s'arrête contient vraiment un ou des liens vers d'autres fichiers?
Dans ta procédure, place le curseur de la souris sur "Open" de
la ligne de code, et appuie sur la touche F1. Tu vas voir que cette
la méthode "Open" contient beaucoup de paramètres dont
: UpdateLinks
auquel tu peux affecter l'une de ces valeurs :
Valeur Signification
0 Les références externes (liens) ne sont pas mises à jour
à l’ouverture du classeur.
3 Les références externes (liens) sont mises à jour
à l’ouverture du classeur.
Modifie ta ligne de code "Workbooks.Open Filename:=File" comme ceci
:
"Workbooks.Open Filename:=File",UpdateLinks:=0
Les mises à jour des données ne seront pas faites à
l'ouverture, mais comme tu
n'as qu'un fichier ayant des liens, tu pourras le faire dès que ce
dernier sera ouvert
manuellement si nécessaire.
MichD
Bjr MichD, quand je suis suis la ligne et que je tape F1 "Worksheets(1).Range ("A2").value=3.14159"
J'ai changé la ligne de code "Workbooks.Open Filename:=File,UpdateLinks:=0" il se passe la même chose, ça ouvre tous mes classeurs + celui avec la boite de dialogue et surbrillance jaune de la nouvelle ligne de commande.
Avatar
MichD
| ça ouvre tous mes classeurs + celui avec la boite de
| dialogue et surbrillance jaune de la nouvelle ligne de commande.
Quelle est la version d'Excel avec laquelle tu travailles?
De quelle boîte de dialogue parles-tu? Que dit cette boîte de dialogue?
Si après avoir répondu à la boîte de dialogue, tu vas dans le code et que
tu appuies sur la touche F8, est-ce que la macro passe la ligne en
surbrillance jaune?
Quelle est la nature des liens de ce fichier avec d'autres fichiers Excel?
Seulement par des formules dans les cellules des feuilles? Si tu ouvres
manuellement de classeur, est-ce que ces liens sont bons? Peux-tu
mettre à jour chacun de ces liens?
Sans voir ce qui se passe, tu dois être très explicite dans tes explications.
MichD