IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Undo et macro VBA [XL-2016]


Sujet :

Macros et VBA Excel

  1. #21
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par unparia Voir le message
    refais-le, mais de manière impliquant vba plus sûrement :
    un bouton de commande
    Même constat avec un bouton ce commande (de formulaire), j'ai poussé un peu le bouchon :
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
      Application.DisplayAlerts = False
      Worksheets("Feuil2").Delete
      Application.DisplayAlerts = True
      Worksheets("Feuil3").Range("A1").Value = "x"
    End Sub
    La pile n'est toujours pas vidée, il n'y est pas ajouté d'undo pour le x écrit par le VBA, mais il reste toujours les 2 Undoes du b et du a : surprenant !
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  2. #22
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Ce que tu rapportes là est intéressant (notamment la différence de comportement selon que le bouton est un contrôle de formulaire ou un contrôle activex).

    Il semble donc que Excel réagit différemment, en matière de conservation ou de destruction de sa pile des Undoes, selon que les instructions sont purement les siennes (qu'il peut donc les contrôler totalement) ou qu'elles viennent de l' "extérieur" (et peuvent donc lui échapper en tout ou partie).

    Voilà donc une discussion qui à le mérite de contribuer à mieux deviner (je dis bien deviner) ce qui se passe en arrière plan.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #23
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bien le bonjour à vous. Je lis avec beaucoup d'intérêt vos interventions. Je ne puis y participer par incompétence. Mais suivant ce que vous dites, je me demande si il n'y a pas une chose à prendre en compte.
    En effet, de temps à autres Excel effectue des enregistrements automatiques. Ce qui lui permet en cas de coupure intempestive de retrouver la dernière mouture enregistrée. N'est-il pas possible que certaines de vos différences de comportement de la pile d'excel soit en fait du à un enregistrement intervenu entre temps.
    J'espère avoir été clair dans mes explications?
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  4. #24
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour Transitoire
    Tout enregistrement (automatique ou non) vide en effet et bien évidemment la pile des undoes; mais les constats faits et rapportés plus haut l'ont été hors tout enregistrement possible.
    Amitiés
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #25
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Re. Comment sait-on qu'un enregistrement automatique s'est effectué? Hors un plantage qui nous permet de comprendre qu'il y a eu un enregistrement, puisqu'Excel nous propose le dernier enregistrement.
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  6. #26
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    La propriété Saved d'un classeur retourne True ou False selon qu'il a été enregistré et non modifié depuis ou que des modifications sont intervenues depuis le dernier enregistrement.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #27
    Nouveau membre du Club
    Homme Profil pro
    interessé par informatique
    Inscrit en
    Novembre 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : interessé par informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    suite à vos remarques j'ai approfondi mes recherches dans ce sens, et il semblerait que ce soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.EnableEvents = False
    ...
    Application.enableEvents = True
    qui soit a l'origine du reset. Je vais donc modifier le code pour m'en passer
    Solution 1 / faire un Array de type T_Modif(T_DATA.DataBodyRange.ListRows.Count) -> Soucis en cas de plantage je perd le tableau et le code plante car il ne connait plus le tableau
    Solution 2 / mettre dans une autre feuille cachée une colonne qui contient l'information.

    Merci et je vous tiens au courant.

  8. #28
    Nouveau membre du Club
    Homme Profil pro
    interessé par informatique
    Inscrit en
    Novembre 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : interessé par informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 42
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Et merci de votre aide.
    En effet le "Undo" ne se reset pas lors d'une macro, mais lorsque on fait une action sur la feuille considérée. Du coup après une modification de ma macro sur worksheet_change(), j'ai encore accès à la fonctionnalité "Undo".
    Je copie la position du curseur dans une autre feuille (du type "Save_Modif") que je réutiliserais lorsque ce sera nécessaire. Et afin de conserver la position des lignes après un tri j'affecte un identifiant pour chaque ligne.

    Donc pour moi c'est tout bon.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23
  2. Connaître la taille d'un module avec une macro VBA ou autre
    Par beegees dans le forum Général VBA
    Réponses: 15
    Dernier message: 22/11/2005, 09h47
  3. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51
  4. Macro VBA sur Access
    Par beurnoir dans le forum Access
    Réponses: 3
    Dernier message: 12/10/2005, 16h46
  5. [SQL][MACRO VBA]Pb de syntaxe
    Par Stef.proxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/08/2004, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo