Commande RefreshAll pour fichier en réseau
Bonjour à tous,
Je souhaite mettre à jour des données en réseau à l'aide d'une macro. L'ensemble de ma macro fonctionne à l'exception de la mise à jour via la commande "activeWorkbook.refreshall".
J'ai essayé de mettre une temporisation mais rien n'y fait. (car l'actualisation prend du temps)
Merci de votre aide
Nicolas
Voici ma macro:
Sub Macro1()
Application.DisplayAlerts = False
ActiveWorkbook.RefreshAll
Application.Wait Now + TimeValue("00:00:10") 'Temporisation de 10 secondes
ActiveWorkbook.Save
Dim wb As Workbook
Dim Fichier As String
Fichier = ThisWorkbook.FullName ' fichier comprend le chemin + nom fichier avec .xlsm (FullName)
Fichier = Left(Fichier, Len(Fichier) - 4) & "xlsx" ' remplace l'extension par .xlsx exigée dans la fileformat
With ActiveWorkbook
.SaveAs Filename:=Fichier, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False 'syntaxe trouvée à partir de l'enregistreur de macro
End With
Application.DisplayAlerts = True
End Sub
Sub envoi_mail()
Application.DisplayAlerts = False
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.to = "nicolas@xxx.com"
.CC = ""
.BCC = ""
.Subject = "envoi fichier bilan"
.Body = "voici le fichier bilan"
.Attachments.Add ActiveWorkbook.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
.Send 'or use .Display
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
Application.Quit
End Sub
Bonjour,
et si tu fais le refresh en mode manuel cela fonctionne-t-il ?
quels sont les objets dont tu fais le refresh ?
Bonjour,
pardon de répondre avec ce délai.
Oui en effet l'actualisation des données manuelle fonctionne bien. Les fichiers sont des devis, commandes... tapés par des administratifs qui, via un logiciel, met à jour des fichiers présents sur le réseau. Je ne fais que reprendre ces fichiers pour ma macro.
Hier j'ai voulu tester si la commande refreshall fonctionnait toute seule, et c'est le cas. Je suppose qu'il doit y avoir une "incompatibilité" dans mes commandes. De plus, j'ai utilisé application.displayalert et je n'ai pas pu voir les messages d'erreurs.
Hier j'ai organisé ma macro différemment :
- macro 1: refreshall
- macro 2 : enregistrement + conversion xlsm en xlsx
- macro3 : envoi mail + application.quit
J'attends de voir si cela fonctionne avec la nouvelle mise à jour.
Merci
Nicolas
Bonjour,
j'ai regardé la mise à jour de mon fichier, et la commande refreshall ne fonctionne toujours pas. Je n'ai plus d'idée n’hésitez pas si vous avez des conseils ou d'autres pistes.
Merci
Nicolas