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 :

Retour ou annulation impossible


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Par défaut Retour ou annulation impossible
    Bonjour,
    je suis un peu perdu dans la myriade de thèmes pour les forums, j'espère étre dans le bon.
    Mon souci que je n'arrive pas à résoudre, est le suivant:
    dans un fichier excel mis à jour quotidiennement, j'ai installé le code suivant dans la feuille Excel concernée pour mettre en rouge mes modifs d'une fois sur l'autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
    'With Selection.Offset(-1, 0).Font
    With Target.Font
    .ColorIndex = 3
    .Bold = True
    End With
    End Sub
    Depuis, je n'ai plus la fonctionnalité de la touche "annulation" ou marche arrière si vous préférez.
    Ce doit être tout bête..
    Comment faire ?
    Merci de vos lumières

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Ta dernière action (modification du style et non de la valeur) n'est pas réversible -->> pas de "marche arrière" (Undo) , donc.
    Et puisque ton évènement Change n'est pas limité à une plage de données, ma foi, tu t'en vas ainsi de cellule en cellule, sans jamais avoir de Undo disponible.
    Subordonne donc ce traitement à une plage de cellule (conditions sur l'objet Target) et tu retrouveras ton bouton "undo" lors de la modification de la valeur de toute autre cellule non comprise dans Target.

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    ca ne serait pas plutôt une bascule que tu cherche a faire
    c'est a dire
    1. sélectionner ---> elle devient rouge
    2. sélectionner une autre --->elle devient rouge et la précédente redevient blanche



    edit :autant pour moi

    la modif se fait l'ors du changement de la valeur alors il va te falloir récréer l'évènement annuler

    en mémorisant les valeur initial les adress et en utilisant application on key exclusivement sur le sheets concerné
    mais c'est chaux quand même

    1 question quand tu dis annuler ca veut dire remettre l'ancienne valeur ou pas ?????
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    trouvant la chose intéressant je me suis essayé a recréer la fonction annule
    alors voila comment je procède

    dans l'évènement change du sheets tu mettra

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
    With Target
    dico(Replace(.Address, "$", "")) = 1
    .Font.ColorIndex = 3
    .Font.Bold = True
    End With
    End If
    End Sub
    dans son activate tu mettra ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Activate()
    Application.OnKey "^z", "annule"
    memo
    End Sub
    et dans son déactivate tu mettra cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Deactivate()
    Application.OnKey "^z"
    End Sub
    maintenant dans un module standard tu mettra ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public tableau
    Public dico
    Sub memo()
    tableau = Sheets(1).Range("A1:A20").Value
    Set dico = CreateObject("Scripting.Dictionary")
    End Sub
    Sub annule()
    For Each elem In dico
    ligne = Range(elem).Row
    col = Range(elem).Column
    e = elem
    Next
    If ligne <> 0 Then
    Cells(ligne, col) = tableau(ligne, col)
    Cells(ligne, col).Font.Color = 0
    Cells(ligne, col).Font.Bold = False
    dico.Remove (e)
    End If
    End Sub
    résultat tu peut modifier tant que tu veux de A1 a A20
    des que tu tape control et "z" tu annule la dernière action et ainsi de suite jusqu'à revenir a l'initial

    ca te remet en noir et non bold le font et remet aussi l'ancienne valeur
    a toi d'adapter
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [WD14] retour ou annuler une opération
    Par nas5_1984 dans le forum WinDev
    Réponses: 25
    Dernier message: 20/06/2011, 08h42
  2. annulation de retour chariots dans une liste
    Par willem77 dans le forum Général Python
    Réponses: 3
    Dernier message: 13/09/2007, 21h33
  3. Impression impossible à annuler quand il est lancé
    Par elfia dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 20/06/2007, 05h40
  4. annuler le retour en haut de page
    Par nocoment dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/04/2007, 11h24
  5. delete [] mavariable impossible ?!...... le retour!
    Par Micromalice dans le forum C++
    Réponses: 12
    Dernier message: 07/11/2006, 14h07

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