Uilisation de la fonction ACTUALISER TOUT en code VBA

lmc71

XLDnaute Occasionnel
Bonjour le Forum,
Je tiens en premier lieu féliciter tous les protagonistes qui sont excellents et dévoués.
J'expose mon souci, car j'ai fait des recherches sans conclusion favorables.
J'utilise un classeur qui est en relation direct avec une BD Access. J'ai placé une protection sur chaque feuille et j'ai découvert dans ce forum un code qui enlève la protection sur toutes les feuilles.
Pas de problème jusque là, je voudrais à ce niveau créer un bouton macro qui utilise la fonction ACTUALISE TOUT (Ctrl+alt+F5) auquel j'insère le code qui enlève la protection et celle qui remet la protection une fois l'actualisation effectuée.
Actuellement je suis obligé d'actionner le code Déprotège - ACTUALISER TOUT - Protège. Je voudrais réunir ces trois actions dans un seul code.
Merci d'avance
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour 13GIBE59,
le Forum
Merci de ta réponse rapide.
C'est la première chose que j'ai faite, mais aucun code ne c'est enregistré, d'où ma demande. Je viens de le refaire mais en enlevant la protection et j'ai trouvé ce code ActiveWorkbook.RefreshAll. Je vais essayé avec.
Toujours dans ce domaine, j'ai remarqué un problème lorsque l'on utilise Actualiser Tout, c'est qu'il actualise TOUT, et je voudrais garder les données des années précédentes qui ne doivent plus être mises à jour. Existe-t-il une façon de garder les données provenant d'une BD access pour les années précédentes intactes.
Cordialement
 

chris

XLDnaute Barbatruc
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour

Alors ne pas utiliser actualiser tout mais limiter l'actualisation par une boucle qui ne l'appliquera pas aux années antérieures...

Actualiser tout a d'autres effets de bord (notamment dans les TCD) et pour ma part je l'évite...
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour Chris
Bonjour le Forum
En effet je suis de retour sur le Forum, et tu es toujours là pour répondre. Je t'en remercie.
Qu'est-ce que tu entends par " mais limiter l'actualisation par une boucle qui ne ......", car comme tu le sais, je ne sais créer une macro, mais seulement les comprendre.
Que veux dire les lettres TCD ?
Merci
Cordialement
 

chris

XLDnaute Barbatruc
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour

TCD = Tableau Croisé Dynamique

Je préconise donc une boucle qui teste si l'objet fait partie de ceux à ne pas actualiser et si non, actualise.

San s le fichier difficile de te donner + d'éléments...
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour Chris,
Bonjour le Forum,
Merci pour l'info.
Je vais essayer de constituer un fichier exemple car celui que j'utilise contient trop de données personnelles.
Entre autre, je continue à travailler sur Gestion Internet.Accdb dans lequel je fais mes liaison avec le fichier Excel
Je te tiens informé.
Cordialement
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour Chris
Je viens de créer deux fichiers d'exemple qui sont en relation ; l'un sur Access et l'autre Excel qui se trouvent dans le lien de cjoint ci-dessous
Le dossier " Jacques villes " est à placer en c:\ pour que les macros puissent fonctionner.
C'est dans le fichier Excel qu'il faut que l'actualisation puisse ce faire sur l'année en cours et non sur les années précédents.
Je te remercie d'avance et le Forum aussi
Cordialement
A+


(c) CJoint.com, 2012
 

chris

XLDnaute Barbatruc
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour

Il faudrait quand même expliquer un peu quelles sont les éléments qui se mettent à jour et ceux qu'ils vaut ne pas mettre à jour : on peut analyser tous les onglets et tous les contenus pour le deviner...

Si tu listes cela, tu auras déjà résolu la moitié du code qui doit traiter ces objets nommément...
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Re Chris.
Dans le fichier Access il y a 4 requêtes qui traitent les données à traiter. Elles sont " 0 EXCEL Produit Enreg RSF " et " 0 Excel Produit sortie " qui permettent la mise à jour des feuilles de l'année crée (ex : 2012 - 2013 ou 2014 excel ) relatif aux produits enregistrés sous Access ou la mise à jour des produits ou bâtiments.
L'actualisation doit se faire dans toutes les feuilles à l'exception de " Bâtiment - Produits et années précédentes à celles de l'année en cours (donc 2012 et 2013) "
L'actualisation des feuilles " Bâtiment et Produits " se font à l'aide des macros MAJ DES DONNEES.
J'espère avoir répondu à ta question.
A+
 

chris

XLDnaute Barbatruc
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Bonjour

L'actualiation concerne Excel quelle que soit la source : c'est donc la liste détaillée des onglets et des contenus concernés qu'il faut faire en précisant ceux à exclure...
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Re
Dans mon dernier message j'ai précisé quelles sont les feuilles qui sont à actualiser à savoir :
L'actualisation doit se faire dans TOUTES les feuilles à l'EXCEPTION de " Bâtiment - Produits et années précédentes à celles de l'année en cours (donc 2012 et 2013) et ainsi de suite pour les années à venir. "

Pour afficher toutes les feuilles il faut cliquer sur la macro AFFICHE FEUILLE - Tous les onglets.
Je ne sais pas si j'ai été assez explicite, si non je tâcherai de m'appliquer.......
Merci et excuses-moi de la relance......
Cordialement
 

chris

XLDnaute Barbatruc
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Re

Sauf erreur de ma part seul les onglets que tu cites contiennent des sources actualisables et, vu les exclusions, seuls les tableaux de l'onglet de l'année en cours sont à actualiser, ce qui donnerait

Code:
Dim Sh As Worksheet
Dim Tabl As ListObject

    For Each Sh In ThisWorkbook.Worksheets
        If Sh.Name = Year(Date) Then
            For Each Tabl In Sh.ListObjects
                Tabl.QueryTable.Refresh BackgroundQuery:=False
            Next Tabl
        End If
    Next Sh
End Sub

Néanmoins en fin d'exercice la notion d'année en cours est souvent fluctuante...
 

lmc71

XLDnaute Occasionnel
Re : Uilisation de la fonction ACTUALISER TOUT en code VBA

Re
J'ai essayé ton code qui fonctionne à merveille . C'est exactement ce que je cherchais
Je te remercie pour ta rapidité et ton professionnalisme.
Excuses encore pour la relance.
A+
Cordialement
Merci à ce forum qui est génial
Fin de cette discussion
 

Statistiques des forums

Discussions
312 472
Messages
2 088 709
Membres
103 928
dernier inscrit
MIKETUAU