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 :

Comment savoir si une cellule a changer à sa "Validation" ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut Comment savoir si une cellule a changer à sa "Validation" ?
    Bonjour à tous,

    Voilà, j'ai un petit souci, j'aimerais savoir si une cellule a changer lors de la "sortie" de celle-ci.

    Par exemple, une cellule contient "PARIS", j'aimerais savoir si l'opérateur l'a changer ou pas, afin de savoir si une sauvegarde est nécessaire ou pas...

    Je suis ouvert à tous conseils ou astuces...

    Denis...

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    Pour un contrôle sur la colonne B, sachant que l'utilisateur peut saisir ou supprimer simultanément dans plusieurs cellules
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cellule As Range
     
        If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
        Application.EnableEvents = False
        x = Target.Cells(1, 1).Value
        Application.Undo
        For Each cellule In Target.Cells
            y = cellule.Value
            If y <> x Then
                cellule.Value = x
                AChange = True
            End If
        Next
        If AChange = True Then MsgBox "la ou les cellules ont changé"
        Application.EnableEvents = True
    End Sub

  3. #3
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    Bonjour Chris, et merci de me répondre.

    Ce bout de code ne fait rien...

    Je pensais attribuer à une variable AncienValue$ l'ancienne valeur de la cellule et en sortie, comparer la valeur de la cellule à AncienValeur$...

    Mais ça semble beaucoup plus compliqué que ça...

    Pour la petite histoire, je contrôle les lignes de 1 à 16.

    Merci encore.

    Denis...

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 569
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 569
    Par défaut
    Bonjour

    Il faut coller le code dans le module de la feuille concernée et adapter la plage de contrôle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Intersect(Target, Range("1:16")) Is Nothing Then Exit Sub

Discussions similaires

  1. Comment savoir si une cellule contient un mot particulier?
    Par steelk dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 02/06/2017, 11h53
  2. [XL-2013] Comment savoir si une cellule a un nom et, l'afficher s'il existe
    Par DenisHen dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/10/2015, 11h58
  3. [XL-2013] Comment savoir si une cellule contient bien une date ?
    Par DenisHen dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/09/2015, 13h07
  4. [XL-2013] Comment savoir si une cellule est fusionnée
    Par DenisHen dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2015, 10h47
  5. [XL-2003] Comment savoir si une cellule a été modifiée
    Par Line dans le forum Excel
    Réponses: 4
    Dernier message: 08/08/2009, 19h49

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