Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Stocker temporairement l'état d'une feuille

  • Initiateur de la discussion Initiateur de la discussion Drillheadz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Drillheadz

Guest
Bonjour à tous !

Alors voilà je vous expose mon problème.

J'ai creé une macro qui va donc parcourir les feuilles de mon classeur et les modifier une par une.
Lorsqu'une erreur intervient, Je lance un MsgBox à mon utilisateur pour le prévenir, je quitte la fonction et passe à la feuille suivante.

Le problème est que lorsqu'une erreur intervient et que je change de feuille, je me retrouve parfois avec une feuille à moitié modifiée.

J'aimerais donc pouvoir stocker l'état de ma feuille avant modification.
De ce fait lorsqu'une erreur intervient, je recupère ma feuille stockée prealablement pour remplacer celle qui est en cours de modification puis je change de feuille.

En gros ! Lorsque que j'ai une erreur, je me retrouve avec une feuille non modifiée.

Je vous remercie d'avance 😉
 
Re : Stocker temporairement l'état d'une feuille

Bonjour Drillheadz et bienvenu, bonjour le forum,

Ça doit être faisable mais ça va ralentir considérablement l'exécution de ton code... Au fait, il où ton code ? Envoie-le qu'on puisse te rajouter ce que tu demandes. Car il faut voir comment sont gérer les erreurs pour intervenir...
 
Re : Stocker temporairement l'état d'une feuille

Merci de ta réponse Robert.

Malheureusement la macro contient des informations que je ne peux divulger.
Mais je ne cherche pas une réponse toute faite, j'aimerais avoir de nouvelle pistes tout simplement.

J'avais une solution qui était de créer une feuille dans la laquelle j'enregistrais les valeurs de mon autre feuille à l'aide d'un parcours cellule par cellule.
Cependant cette solution est extremement lourde à mettre en place.
Suis-je dans une impasse ?
 
Re : Stocker temporairement l'état d'une feuille

Bonsoir Drillheadz, Robert,

Je dis peut-etre une bêtise (ce ne serait pas la 1ière fois);

Pourquoi avant de modifier une feuille, ne pas la dupliquer. Si la macro se termine sans erreur, on efface la feuille dupliquée et on passe à la suivante, si une erreur se produit, on recopie la feuille dupliquée sur la feuille en cours, on efface la feuille dupliquée et on passe à la feuille suivante. Mais sans classeur, difficile d'aller plus loin.
 
Dernière édition:
Re : Stocker temporairement l'état d'une feuille

Salut à toi MaPomme !

Excusez mon langage mais finalement c'est "tout con" ce que tu nous proposes et je dois t'avouer que, je ne sais pas pourquoi, mais je n'y avais absolument pas pensé avant.

Je testerai tout cela demain mais ça m'a l'air plus que bien engagé !

Rassurez-moi, il est bien possible de dupliquer une feuille dans un même classeur ?
 
Re : Stocker temporairement l'état d'une feuille

Bonsoir Drillheadz,
il est bien possible de dupliquer une feuille dans un même classeur ?
Oui.

On peut imaginer avant le traitement de la feuille Toto, un code du type:
VB:
Dim FeuilCopie As Worksheet

    Sheets("Toto").Copy Before:=Sheets("Toto")
    Set FeuilCopie = ActiveSheet

et si une erreur se produit, on recopie la feuille dupliquée sur l'ancienne (Toto):
VB:
  FeuilCopie.Cells.Copy Sheets("Toto").Cells

puis terminer dans tous les cas par:
VB:
    Application.DisplayAlerts = False
    FeuilCopie.Delete
    Application.DisplayAlerts = True
 
Dernière édition:
Re : Stocker temporairement l'état d'une feuille

Bonjour Drillheadz, Bonjour Robert 🙂 , Bonjour mapomme 🙂 ,
@ mapomme;
En partant de ta très bonne idée, j'aurais bien vu, au lieu de copier / coller :
VB:
Application.DisplayAlerts = False
If Err Then
    Err.Clear
    Sheets("Toto").Delete
    FeuilCopie.Name = "Toto"
Else
    FeuilCopie.Delete
End If
Application.DisplayAlerts = True
Ca reste un detail 😀
Cordialement
 
Dernière édition:
Re : Stocker temporairement l'état d'une feuille

Bonjour à tous, Efgé,

Si je n'ai pas supprimé la feuille Toto c'est pour préserver d'éventuelles liaisons à cette feuille qui, peut-être se transformeraient en '#Ref' si la feuille 'Toto' était amenée à ne plus exister quelques instants. Mais je n'ai rien vérifié et ce que je crains peut être tout à fait faux!

Edit: En fait, je crois bien que les relations ne sont conservées que si la feuille à laquelle font référence ces relations n'est pas détruite.
 
Dernière édition:
Re : Stocker temporairement l'état d'une feuille

Je vous remercie de l'aide que vous m'avez apportez, cela fonctionne à la perfection !

Cependant je laisse le sujet temporairement "non resolu" pour palier à d'eventuelles futures erreurs.

Cordialement.
 
Re : Stocker temporairement l'état d'une feuille

Bonjour à tous !

Ma macro est maintenant terminé mais il se trouve que c'est une macro que je dois "distribuer" sur un plan national.

De ce fait j'ai étudié la piste de la macro complémentaire qui semble plus qu'efficace.

Cependant afin de rendre la macro effective, l'utilisateur doit effectuer une paire de démarche (placer la macro dans le fichier des macro complémentaires puis l'activer).

J'aimerais en fait minimiser au maximum le nombre d'actions que doit effectuer l'utilisateur, d'une part pour minimiser les erreurs et d'autres part parce que le niveau des utilisateurs sera à l'échelon 0.

Pour ce faire j'aimerais produire un code qui va lui même activer la macro complémentaire.

Cependant je n'ai aucune piste alors si vous pouviez m'aider ...

Sur ce je vous remercie d'avance et vous souhaite une bonne soirée =)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…