Bonjour ,
vu la date de la question , je suppose qu'une solution a été trouvvée depuis . Mais je vais tout de même y repondre, car il est vrai, comme vous l'avez souligné , qu'il est tres difficile de trouver des infos sur les macros sous BO , donc ça servira peut etre a la prochaine personne qui effectuera une recherche ...
De mon côté , j'ai un applicatif qui exploite plusieurs requetes BO . Je lance une macro sous BO qui va ouvrir , raffraichir , puis exporter les données sous Excel , et enfin refermer les requetes , puis sauvegarder le fichier Excel . D'un traitement manuel prenant 5 a 10 minutes chaque jour , l'automatisation arrive a le faire en moins de 1 minute .
Ci dessous le script
Sub export()
Dim BOCmdBar As CmdBar
Dim BOCmdBarControls As CmdBarControls
Dim BOControlButton As Control
Dim BOCmdBarPopup As CmdBarPopup
Dim BOCmdBarButton As CmdBarButton
Dim affectation As Document
Dim doc1 As Document
Dim doc2 As Document
Dim doc3 As Document
Dim doc4 As Document
Dim doc5 As Document
Set xcl = CreateObject("Excel.Application")
' 1) MISE A JOUR DES DONNEES D'AFFECTATIONS
' ouvre le fichier excel destinataire
strFileName = "M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\liste des affectations.xls"
xcl.Workbooks.Open Filename:=strFileName
xcl.Visible = True
' reinitialise les données de l'onglet affectations
xcl.Sheets("feuil1").Select
xcl.Cells.Select
xcl.Selection.ClearContents
xcl.Range("A1").Select
' ETAPE DE RAFFRAICHISSEMENT DE DONNEES
Set affectation = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\affectations PF.rep")
affectation.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("feuil1").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
' sauvegarde le fichier Excel
xcl.ActiveWorkbook.SaveAs Filename:=strFileName, _
FileFormat:=17, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
xcl.Quit
Set xcl = Nothing
' 2) MISE A JOUR DES DONNEES DES COMMENTAIRES
' ouvre le fichier excel destinataire
Set xcl = CreateObject("Excel.Application")
strFileName = "M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\LOGA v2.xls"
xcl.Workbooks.Open Filename:=strFileName
xcl.Visible = True
' reinitialise les données de commentaires
'xcl.Sheets("macro").Select
'xcl.Application.Run "commentaires.xls!purge"
xcl.Sheets("com lig log").Select
xcl.Cells.Select
xcl.Selection.ClearContents
xcl.Sheets("com lig ordo").Select
xcl.Cells.Select
xcl.Selection.ClearContents
xcl.Sheets("com cde log").Select
xcl.Cells.Select
xcl.Selection.ClearContents
xcl.Sheets("com cde ordo").Select
xcl.Cells.Select
xcl.Selection.ClearContents
xcl.Range("A1").Select
' 2A ) raffraichissement des données commentaires ligne log
Set doc1 = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\commentaires lignes logistique.rep")
doc1.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("com lig log").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
doc1.Close
' 2B ) raffraichissement des données commentaires ligne ordo
Set doc2 = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\commentaires lignes ordo.rep")
doc2.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("com lig ordo").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
doc2.Close
' 2C ) raffraichissement des données commentaires cde ordo
Set doc3 = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\commentaires commandes ordo.rep")
doc3.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("com cde ordo").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
doc3.Close
' 2D ) raffraichissement des données commentaires cde log
Set doc4 = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\commentaires commandes logistique.rep")
doc4.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("com cde log").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
doc4.Close
' sauvegarde et quitte le fichier Excel
'xcl.ActiveWorkbook.SaveAs Filename:=strFileName, _
'FileFormat:=17, Password:="", WriteResPassword:="", _
'ReadOnlyRecommended:=False, CreateBackup:=False
'xcl.Quit
'Set xcl = Nothing
' 3) MISE A JOUR DES DONNEES DES COMMANDES GCE
xcl.Sheets("source").Select
xcl.Cells.Select
xcl.Selection.ClearContents
' ETAPE DE RAFFRAICHISSEMENT DE DONNEES
Set doc6 = Application.Documents.Open("M:\LLG\BIO 1\Logistique Industrielle\Planification\5S\Process\Process 3 - Gestion commandes\requetes BO\LOGA\listing commandes GCE.rep")
doc6.Refresh
'Execute la commande 'copier tout' du menu 'Edition' de BO
'2nd menu et 20ème commandes
' selectionne les données BO et les copie dans Excel
Set BOCmdBar = Application.CmdBars.Item(2)
Set BOCmdBarControls = BOCmdBar.Controls
Set BOCmdBarPopup = BOCmdBarControls.Item(2)
Set BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
BOCmdBarButton.Execute
xcl.Application.DisplayAlerts = False
' selectionne l'onglet Excel destinataire de la copie
xcl.Sheets("source").Select
xcl.Range("A1").Select
xcl.ActiveSheet.Paste
doc6.Close
' sauvegarde le fichier Excel
xcl.Sheets("INTRO").Select
xcl.ActiveWorkbook.SaveAs Filename:=strFileName, _
FileFormat:=17, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
xcl.Quit
Set xcl = Nothing
End Sub