1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| Option Explicit
Sub Fusion_TS()
Application.ScreenUpdating = False
Dim NB_Lignes_TS_Fusion As Long
Boutons_Fonctions.Bouton_Tout_Afficher
'!!!!!!! IMPORTANT pour que le rafraîchissement puisse se terminer avant que la macro continue
'!!!!!!! Modifier les paramètres Excel
'!!!!!!! Sélectionner une cellule dans le tableau des DATA
'!!!!!!! Sur le ruban Excel sélectionner Données
'!!!!!!! Propriétés à côté de Actualiser tout
'!!!!!!! Au bout du nom de la requête cliquer sur le bouton Propriétés de la requête
'!!!!!!! Enlever la coche dans : Activer l'actualisation en arrière plan
'!!!!!!! https://www.mrexcel.com/board/threads/excel-vba-refresh-wait.607332/
ActiveWorkbook.RefreshAll 'Lancer le rafraichissement
On Error GoTo Suite 'Si le tableau est vide
[TS_Fusion].ListObject.DataBodyRange.Delete
Suite:
[TS_PG_Production].ListObject.DataBodyRange.Copy
Sheets("Fusion").Activate
If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData 'Enlever les filtres
Sheets("Fusion").Range("C2").Select
Sheets("Fusion").Paste
NB_Lignes_TS_Fusion = Sheets("Fusion").Range("TS_Fusion").ListObject.ListRows.Count + 1
[TS_PG_Production_ETA].ListObject.DataBodyRange.Copy
Sheets("Fusion").Range("TS_Fusion").Cells(NB_Lignes_TS_Fusion, 3).Select
Sheets("Fusion").Paste
Sheets("TCD").Select
Sheets("TCD").PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
MsgBox "Actualisation terminée", vbInformation, "Importation depuis LOOK"
Application.ScreenUpdating = True
End Sub |
Partager