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 :

Message à la modification d'une colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Par défaut Message à la modification d'une colonne
    Bonjour à tous,

    Je travaille sur un fichier dans lequel on ne doit pas modifier certaines colonnes dans certains cas

    Je m'explique,

    Colonne 6, on a un statut, "Expédié", "En-cours" Etc
    Colonne 19 est renseigné "Localisation si livré"
    Colonne 23 est renseigné "Localisation si dans l'en-cours"

    J'aimerais que si le statut n'est pas le bon, alors on ne peut pas modifier la colonne concernée.

    Exemple, si colonne 6 on a pas "Expédié", alors on ne peut pas remplir (pour la même ligne), la colonne 19
    J'avais commencé mais ça ne fonctionne pas :


    dans WorkSheet_Change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim ok as boolean
     
        If Not Intersect(Target, Range("S4:S10000")) Is Nothing Then
            If ok = True Then Exit Sub
            If Cells(Target.Row, 6) <> "Expédié" Then
                MsgBox ("Le statut colonne F n'est pas Expédié, vous ne pouvez donc pas remplir cette colonne")
                Cells(Target.Row, 19) = ""
                Target.Value = Target.Offset(0, -10).Value
                ok = True
            End If
        End If
    ok = False
    End Sub
    Je pense que le problème vient du fait que je ne maîtrise absolument pas l'outil "Target"

    En gros le MsgBox s'affiche à l'infini je suis obligé de forcer l'arrêt.

    Je ne comprend pas et ça devient lassant...
    J'aimerais que si l'on modifie la cellule alors :
    1- le MsgBox s'affiche
    2- Le contenu est effacé
    3- le curseur est renvoyé sur la cellule (ligne target.row, colonne 6)

    PS: il ne faut pas que ça s'enclenche à la séléction (ça j'avais réussi à le faire), mais bien à la modification...

    Je vous remercie d'avance et j'espère sincèrement que c'est possible et que vous me sauverez...

    Cordialement,

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    Le problème vient de cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Target.Row, 19) = ""
    Cette instruction modifie la valeur d'une cellule, ce qui déclenche l'événement Worksheet_Change.
    Etant donné que ton code est lui-même placé dans l'événement Worksheet_Change, il s'appelle à l'infini.

    Pour éviter cela, il faut désactiver temporairement les procédure événementielles via l'instruction suivante (à placer en début de procédure) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = False
    Bien sûr, ne pas oublier de remettre à True en fin de procédure.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2019
    Messages : 5
    Par défaut
    Oh super mat955,

    Merci beaucoup pour ta rapidité et pour ta clarté !
    Problème résolu donc :)
    Bonne journée !

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

Discussions similaires

  1. demande de requete de modification d'une colonne
    Par jsdar dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/03/2007, 23h03
  2. Erreur de modification d'une colonne.
    Par grenoult dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/12/2006, 12h37
  3. [Oracle 9i] aide modification d'une colonne
    Par bubblelicious dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/03/2006, 15h29
  4. [Access] Modification d'une colonne ...
    Par hobotalker dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/02/2006, 11h03
  5. [DB2]Modification d'une colonne
    Par ahoyeau dans le forum DB2
    Réponses: 4
    Dernier message: 08/10/2004, 00h24

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