Mise à jour des données d'un fichier de plusieurs sources

Bonjour à tous,

Je tiens par avance à tous vous remercier pour le temps que vous prendrez afin de m’aider dans ma requête.

Je m’essaye au VBA depuis 1 an en fonction de mes besoins et j’arrive habituellement à m’en sortir grâce aux informations trouvées sur internet. Mais dans ce cas j’ai vraiment essayé tout ce que j’ai pu trouver.

J’ai un fichier Excel qui est un tableau de bord (Il me permet d’afficher tous les indicateurs de différents fichiers comme par exemple la maintenance où j’affiche que le taux d’avancement des actions de maintenance par mois ou encore les indicateurs de transport). Sur chacun des fichiers de base, j’ai une page d’indicateur (traitement visuel des données) et je copie cette page sur un fichier qui centralise la totalité des feuilles d’indicateur des différents fichiers. (le tableau de bord)

Au début le fichier ne comportait que 2 ou 3 feuilles avec des indicateurs mais au fur et à mesure du développement de mon système, le nombre de feuille a augmenté.

Afin de mettre à jour j’utilisais « Actualiser toutes les données » mais très rapidement des erreurs sont apparue. J’ai donc utilisé le code suivant qui fonctionnait parfaitement (Bien que l’ordi moulinait un peu)

PI : J’ouvre tous les documents contenant la page d’indicateur, j’actualise mon tableau de bord et je referme les pages ouvertes.

Private Sub Workbook_Open()
         Workbooks.Open ("T:\QSE\MAINTENANCE\Maintenance\Maintenance 2018 V3.xlsm")
        Workbooks.Open ("T:\QSE\RESSOURCES HUMAINES\I-GRICOM Grille de compétence.xlsm")
        Workbooks.Open ("T:\QSE\NON CONFORMITES\F-SUIPRO Fiche de suivi des fiches de progrès V3 .xlsm")
        Workbooks.Open ("T:\QSE\PLANNIFICATION QSE\EXIGENCES\F-EXIREG Exigences réglementaires.xlsm")
        Workbooks.Open ("T:\QSE\PREPARATIONS LOGISTIQUE\F-EVAFOU - Evaluation transporteur-fournisseur.xlsm")
        Workbooks.Open ("T:\Brunel\État stock et code ICPE\Formulaire SNS - Etat de stock détaillé Brunel avec ICPE.xlsm")

[i]'ici on ouvre les différents classeurs contenant les données à recupérer et à afficher dans P-SURPER (Tableau de bord)[/i]

 Windows("P-SURPER Surveillance et performance du SGS.xlsm").Activate
 ActiveWorkbook.RefreshAll

 Workbooks("Maintenance 2018 V3.xlsm").Close savechanges:=False       
 Workbooks("I-GRICOM Grille de compétence.xlsx").Close savechanges:=False
 Workbooks("F-SUIPRO Fiche de suivi des fiches de progrès V3 .xlsm").Close savechanges:=False
 Workbooks("F-EXIREG Exigences réglementaires.xlsx").Close savechanges:=False   
 Workbooks("F-EVAFOU - Evaluation transporteur-fournisseur.xlsm").Close savechanges = False
 Workbooks("F-COQURE - Contrôle qualité réception SNS.xlsm").Close savechanges = False
Workbooks("Formulaire SNS - Etat de stock détaillé Brunel avec ICPE.xls").Close savechanges = False

[i]'Puis on referme les sources sans sauvegarder les changements (important dans mon cas)[/i]

Mais depuis peu des messages d’erreur apparaissait lors de l’ouverture du fichier. J’ai donc essayé différentes méthodes mais rien n’y fait (c’est même pire qu’avant) :

Tentative 1 : en remplaçant le précédent code par celui la mais cela ne fait que m’ouvrir l’interface de lien de excel et il me demande de choisir une seule source

'Application.AskToUpdateLinks = False
'ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources

Tentative 2 : Essayer de mettre directement à jour mes sources via cette petite boucle pour mettre à jour le fichier de destination mais pareil le fichier s’ouvre et se ferme sans mettre à jour les données

Private Sub Workbook_Open()
 Dim Liaisons, Classeurs
    'Mettre ici les chemins des fichiers de destination 2
    Classeurs = "T:\QSE\SYSTEME DE GESTION DE LA SECURITE\SGS\6. Surveillance des performances\P-SURPER Surveillance et performance du SGS.xlsm" [i]'Chemin d'accès au document à mettre à jour[/i]

    Application.ScreenUpdating = False
    For Each Item In Classeurs
        Workbooks.Open Item, UpdateLinks = True
        Liaisons = ActiveWorkbook.LinkSources
        For I = 1 To UBound(Liaisons)
            Workbooks.Open Liaisons(I), UpdateLinks = True
            ActiveWorkbook.Close True
        Next
        ActiveWorkbook.Close True
    Next Item
    Application.ScreenUpdating = True 'Boucle de mise à jour

End Sub

Je n’ai a ce jour pas trouvé d’autre moyen de réussir à mettre à jour mon document et surtout à avoir un code durable qui n’affiche pas d’erreur au bout de 2 semaines d’utilisation … Je m’en remets donc à vous.

Mon problème est le suivant : Est-ce possible de mettre à jour mon document via un code VBA qui met à jour lors de l’ouverture du fichier et/ou en appuyant sur le bouton de mise à jour (Feuille « Fiche de commande ») ?

Ci-joint mon fichier de surveillance sans les données sensibles. (J’ai supprimé la majorité des chiffres)

Je vous remercie infiniment d’avance pour le fait de m’avoir lu et je vous remercie d’autant plus si quelqu’un peut m’aider à trouver une solution à ce problème.

bonjour

on utilise maintenant Power Query, comme ceci

dans ton fichier Excel, menu Données/obtenir/ choisir ta source, "Charger"

répéter pour chaque source

toutes les semaines, tu cliques "actualiser" et toute les requêtes se mettent à jour

note : les flopées d'indicateurs se font par Power BI (version Desktop gratuite). A apprendre d'urgence

je ne fais plus aucun graphique dans Excel !

pas de VBA

amitiés excelliennes

Je vous remercie beaucoup, c'est vraiment la solutions qu'il me fallait ! Merci encore il ne reste plus qu'à bien prendre en main le logiciel, encore merci !

Rechercher des sujets similaires à "mise jour donnees fichier sources"