Erreur sur macro
thibjln
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Hello,
Je cherche à pouvoir actualiser les données de plusieurs fichiers excel par une seule macro.
Etant très novice en VBA j'ai recherché et trouvé un code qui fait l'affaire parfaitement.
Cependant il ne fonctionne pas, et je ne comprend pas pourquoi.
Ci après le code :
</code>
Sub Maj_Lundi()
'Déclaration des variables de base
Dim wbSource, wbFichierUsager As Workbook
Dim strFileName, strPath, strSpec As String
Dim strFileList() As String
Dim i, FoundFiles As Integer
Set wbFichierUsager = ThisWorkbook
'Identification du chemin
strPath = "K:\Partenariat exclusif\RESULTATS VENTES PARTENAIRES EXCLUSIFS en xlsx\01. Lundi\"
strSpec = strPath & "*.xlsx"
'Extraction du contenu du répertoire
strFileName = Dir(strSpec)
If strFileName <> "" Then
FoundFiles = 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Else
MsgBox "Aucun fichier trouvé"
Exit Sub
End If
'Trouver tous les autres noms de fichiers
Do
strFileName = Dir
If strFileName = "" Then Exit Do
FoundFiles = FoundFiles + 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Loop
'Effectuer les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open strFileName:=strFileList(i)
Set wbSource = ActiveWorkbook
ActiveWorkbook.RefreshAll
wbSource.Close SaveChanges:=False
Next i
End Sub
L'erreur se passe au niveau de l'expression en gras : "Erreur de compilation : argument nommé introuvable"
Pourtant il me semble que la variable est correctement définie plus haut !
Si quelqu'un pourrait m'éclairer.
Merci d'avance :)
Thibaut
Je cherche à pouvoir actualiser les données de plusieurs fichiers excel par une seule macro.
Etant très novice en VBA j'ai recherché et trouvé un code qui fait l'affaire parfaitement.
Cependant il ne fonctionne pas, et je ne comprend pas pourquoi.
Ci après le code :
</code>
Sub Maj_Lundi()
'Déclaration des variables de base
Dim wbSource, wbFichierUsager As Workbook
Dim strFileName, strPath, strSpec As String
Dim strFileList() As String
Dim i, FoundFiles As Integer
Set wbFichierUsager = ThisWorkbook
'Identification du chemin
strPath = "K:\Partenariat exclusif\RESULTATS VENTES PARTENAIRES EXCLUSIFS en xlsx\01. Lundi\"
strSpec = strPath & "*.xlsx"
'Extraction du contenu du répertoire
strFileName = Dir(strSpec)
If strFileName <> "" Then
FoundFiles = 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Else
MsgBox "Aucun fichier trouvé"
Exit Sub
End If
'Trouver tous les autres noms de fichiers
Do
strFileName = Dir
If strFileName = "" Then Exit Do
FoundFiles = FoundFiles + 1
ReDim Preserve strFileList(1 To FoundFiles)
strFileList(FoundFiles) = strPath & strFileName
Loop
'Effectuer les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open strFileName:=strFileList(i)
Set wbSource = ActiveWorkbook
ActiveWorkbook.RefreshAll
wbSource.Close SaveChanges:=False
Next i
End Sub
L'erreur se passe au niveau de l'expression en gras : "Erreur de compilation : argument nommé introuvable"
Pourtant il me semble que la variable est correctement définie plus haut !
Si quelqu'un pourrait m'éclairer.
Merci d'avance :)
Thibaut
A voir également:
- Erreur sur macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
4 réponses
Bonjour,
Avec le bon nom de l'argument de la méthode Open :
Pour le nom des arguments, voir l'intellisense ou l'aide :
https://docs.microsoft.com/fr-FR/office/vba/api/Excel.Workbooks.Open
Avec le bon nom de l'argument de la méthode Open :
Workbooks.Open Filename:=strFileList(i)
Pour le nom des arguments, voir l'intellisense ou l'aide :
https://docs.microsoft.com/fr-FR/office/vba/api/Excel.Workbooks.Open
C'est de nouveau moi ! Déjà merci pour votre aide, plus d'erreur dans le code mais...
J'ai cependant un autre problème, j'ai l'impression en faisant des checks après avoir fait tourner la macro que les données ne se mettent pas à jour. En ouvrant chaque fichier, c'est seulement une fois que j'active le contenu (connexions de données externes) que le contenu se met à jour.
J'ai essayé d'utiliser le code UpdateLinks avant le Refresh :
'Effectuer les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open Filename:=strFileList(i)
Set wbSource = ActiveWorkbook
wbSource.UpdateLinks = xlUpdateLinksAlways
wbSource.RefreshAll
wbSource.Close SaveChanges:=True
Next i
End Sub
Mais cela ne fonctionne pas...
Une idée ?
Merci d'avance
Thib
J'ai cependant un autre problème, j'ai l'impression en faisant des checks après avoir fait tourner la macro que les données ne se mettent pas à jour. En ouvrant chaque fichier, c'est seulement une fois que j'active le contenu (connexions de données externes) que le contenu se met à jour.
J'ai essayé d'utiliser le code UpdateLinks avant le Refresh :
'Effectuer les traitements requis pour chaque fichier
For i = 1 To FoundFiles
Workbooks.Open Filename:=strFileList(i)
Set wbSource = ActiveWorkbook
wbSource.UpdateLinks = xlUpdateLinksAlways
wbSource.RefreshAll
wbSource.Close SaveChanges:=True
Next i
End Sub
Mais cela ne fonctionne pas...
Une idée ?
Merci d'avance
Thib