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 :

Problème de validation des données [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut Problème de validation des données
    Bonjour au forum
    Merci pour toute l'aide que vous m'apportez
    Dans ma feuille de calcul j'ai une cellule A1 dont la valeur à saisir ne doit pas dépasser (inférieure ou égale) celle qui se trouve dans une autre cellule A2 (par exemple).J'ai procédé par la Validation des données sous l'onglet Données.Jusque là c'est bon et ça marche bien.Mais j'ai remarqué une chose :lorsque j'annule la valeur saisie dans A1 celle qui se trouve dans A2 reste inchangée (pas de message d'alerte).
    Je voudrais règlé ce petit souci pour éviter d'éventuelles erreurs:
    A1 représente le nombre d'articles en stock et A2 celui des articles vendus;si par inadvertance se glisse une erreur comme celle décrite plus haut je risque de me retouver avec un stock négatif.
    Peut etre avec un code VBA l'erreur sera signalé meme si supprime la valeur qui se trouve dans la cellule source A1.
    N B : Si après avoir annulé la valeur de A1,je met une autre valeur dans A2 (autre que celle qui se trouvait déjà) alors j'obtiens le msg d'alerte.

    Merci d'avance

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu peux avec l'évènement workshhet_change tester si la modification a lieu en A1 et vérifier que la cellule A2 correspond a la nouvelle valeur si ce n'est pas le cas effaer A2 et faire une alerte.
    Exemple
    Je teste si la modif a lieu de A1 à E1 et j'éfface la ligne de dessous si elle est supérieure a la nouvelle valeur
    (a metre dans le code de la feuille)

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range
    Dim flag As Boolean
    If Not Intersect(Target, Range("A1:E1")) Is Nothing Then 'on regarde si la modification a lieu sur la plage A1 à E1
        flag = False
        For Each cel In Intersect(Target, Range("A1:E1"))
            If cel.Offset(1, 0) > cel Then 'si la cellule une ligne plus bas est plus grande que la cellule modifié
                cel.Offset(1, 0).ClearContents 'on efface la cellule de la ligne du dessous
                flag = True 'il faudra un message pour signaler la modif
            End If
        Next cel
        If flag Then
            MsgBox "Certaines cellules de la ligne 2 ont du être effacé suite à la modification de la ligne 1"
        End If
    End If
    End Sub

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Merci krovax mais le code ne fonctionne pas.
    Je que voudrais c'est que la valeur de chaque cellule de la plage G8 à G54 soit toujours inférieure ou égale à celle de la cellule se trovant à sa gauche.
    Exemple :
    G8 < ou = F8
    G53 < ou = F53

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Il te suffit d'adapter les commentaire sont la pour ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Not Intersect(Target, Range("A1:E1")) Is Nothing Then 'on regarde si la modification a lieu sur la plage A1 à E1
    Remplace le A1:E1 par ta plage G8:G54 pareille quelque ligne plus bas

    Et au lieu de qui regarde une ligne plus bas utilise
    qui corespond a la ligne juste a gauche

    La prochaine fois donne tout de suite la bonne plage de valeur, comme cela tu n'auras pas a l'adapter toi même
    Car tu as dit
    lorsque j'annule la valeur saisie dans A1 celle qui se trouve dans A2 reste inchangée (pas de message d'alerte).
    Je te laisse essayer d'adapter ca Montre nous ce que tu as fait si tu as un souci

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 116
    Par défaut
    Merci à tous.Je suis toujours dans l'impase .J'ai du certainement mal m'expliquer. Voici à quoi ressemble àpeu près mon tableau :
    A priori ça marche très bien pour peu que les données soient valides


    (1) (2) (1+2) (3) (1+2-3)
    stock départ entrées stock total sorties stock arrivée
    10 20 30 28 2

    Par contre si je change (1) en mettant 2 au lieu de 10 j'aurais alors ceci


    (1) (2) (1+2) (3) (1+2-3)
    stock départ entrées stock total sorties stock arrivée
    2 20 22 28 -6

    Pourtant j'ai validé les données de "sorties" en spécifiant que sa valeur doit tjr etre inferieure ou égale à "stock total" , car le "stock arriveée" ne doit en aucun cas etre négatif.

    PS : J'avoue que je ne me suis par encore familiarisé avec les outils du forum,c'est pour ça que je n'ai pas pu envoyer un bout de mon fichier en pièce jointe.Je vais m'y mettre ,c'est promis.

    MERCI

    Désolé vraiment désolé
    la mise en forme de mon dernier post est tout aussi nul que moi

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Est ce que tu as modifié le code que je t'ai donné? si oui comment? montre nous ton code
    Et utilise les balise code regarde le premier post du forum sur laide a l'utilisation des bouton) il y a un lien qui t'expliquera comment faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/02/2007, 08h14
  2. Problème de validation de données
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 23/11/2005, 14h11
  3. [débutante] problème de validation des méta-tags
    Par silversky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/09/2005, 17h26
  4. [JTable] Problème d'affichage des données
    Par ddams dans le forum Composants
    Réponses: 2
    Dernier message: 15/09/2004, 17h07
  5. dbgrid AND validation des données
    Par samlerouge dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/06/2004, 23h08

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