Bonjour à tous,
J'ai un petit souçi, vous devez vous en douter.
Sur un fichier, je fais des mises à jour (Bloomberg, application "bloombergui.xla!RefreshData") puis une copie. Pour copier les données mises à jour, j'utilise Application.OnTime sur le macro de copie.
Sur mon fichier ce code fonctionne.
Cependant, je souhaite l'appliquer à plusieurs fichiers du même type regroupés dans un onglet.
Le code ci-dessous me pose alors problème car le fichier ouvret est fermé (wb.close) trés rapidement, sans que le "ontime" n'aille jusqu'à la fin.
Idéalement, je voudrais bloquer la fermeture du fichier actif, tant que la mise à jour n'est pas finie. J'ai pensé à Sheet change et Thisworkbook.close False mais je ne connais pas trop.
Quelqu'un a-t-il une idée ?
Merci bcp
A+
Teter
Sub test()
Dim i As Integer, wb As Workbook
With Application.FileSearch
.NewSearch
.LookIn = "C:\..."
.SearchSubFolders = False
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
'Open each workbook
Set wb = Workbooks.Open(Filename:=.FoundFiles(i))
'Perform the operation on the open workbook
…
Application.Run ("bloombergui.xla!RefreshData")
'tempspause est défini en fonction du nombre de données à mettre à jour
Application.OnTime tempspause, "Macro2"
'Save and close the workbook
wb.Save
wb.Close
'On to the next workbook
Next i
End With
End Sub
Sub Macro2()
Sheets("source").Select
Cells.Select
Selection.Copy
Sheets("dest").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
J'ai un petit souçi, vous devez vous en douter.
Sur un fichier, je fais des mises à jour (Bloomberg, application "bloombergui.xla!RefreshData") puis une copie. Pour copier les données mises à jour, j'utilise Application.OnTime sur le macro de copie.
Sur mon fichier ce code fonctionne.
Cependant, je souhaite l'appliquer à plusieurs fichiers du même type regroupés dans un onglet.
Le code ci-dessous me pose alors problème car le fichier ouvret est fermé (wb.close) trés rapidement, sans que le "ontime" n'aille jusqu'à la fin.
Idéalement, je voudrais bloquer la fermeture du fichier actif, tant que la mise à jour n'est pas finie. J'ai pensé à Sheet change et Thisworkbook.close False mais je ne connais pas trop.
Quelqu'un a-t-il une idée ?
Merci bcp
A+
Teter
Sub test()
Dim i As Integer, wb As Workbook
With Application.FileSearch
.NewSearch
.LookIn = "C:\..."
.SearchSubFolders = False
.Filename = "*.xls"
.Execute
For i = 1 To .FoundFiles.Count
'Open each workbook
Set wb = Workbooks.Open(Filename:=.FoundFiles(i))
'Perform the operation on the open workbook
…
Application.Run ("bloombergui.xla!RefreshData")
'tempspause est défini en fonction du nombre de données à mettre à jour
Application.OnTime tempspause, "Macro2"
'Save and close the workbook
wb.Save
wb.Close
'On to the next workbook
Next i
End With
End Sub
Sub Macro2()
Sheets("source").Select
Cells.Select
Selection.Copy
Sheets("dest").Select
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub