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 :

Ajout ou suppression d'un élément dans une liste de validation des données par macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 827
    Par défaut Ajout ou suppression d'un élément dans une liste de validation des données par macro
    Bonjour.

    Je souhaiterai ajouter un élément qui n'appartient pas à la liste de validation des données dans le contrôle source ou supprimer un de ses éléments.

    Pour ce faire j'ai utilisé un bout de code de BOISGONTIER que j'ai adapté pour vérifier d'abord si la cellule contient une liste.
    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
        Set cel = Cells.SpecialCells(xlCellTypeAllValidation)
        If MsgBox("On ajoute?", vbYesNo) = vbYes Then
            If Not Intersect(Target, cel) Is Nothing Then
                If Target.Address = Target.Address Then
                    If InStr(Target.Validation.Formula1, Target.Value) = 0 Then
                        Target.Validation.Modify Formula1:=Application.Substitute(Target.Validation.Formula1, ";", ",") & "," & Target.Value
                    End If
                End If
                Target.Activate
            Else
                Application.Undo
            End If
        End If
    End Sub
    J'aimerai supprimer un des éléments de la liste de validation et là ça coince je ne sais pas comment procéder.

    Un petit coup de pouce svp, merci d'avance.

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonjour,

    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
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     If Target.Column = 2 And Target.Count = 1 Then
       If Target <> "" Then
         If Not IsError(Application.Match(Target.Value, [liste], 0)) Then
           If MsgBox("On supprime de la liste " & Target & "?", vbYesNo) = vbYes Then
             p = Application.Match(Target.Value, [liste], 0)
             Sup p
             Target.Delete
           End If
         End If
       End If
      End If
      Cancel = True
    End Sub
     
    Sub Sup(p)
      [liste].Cells(p, 1).Delete Shift:=xlUp
    End SubEnd Sub
    Si la liste de validation est un TS, le code devient:

    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
     
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
     If Target.Column = 2 And Target.Count = 1 Then
       If Target <> "" Then
         If Not IsError(Application.Match(Target.Value, [tableau1], 0)) Then
           If MsgBox("On supprime de la liste " & Target & "?", vbYesNo) = vbYes Then
             p = Application.Match(Target.Value, [tableau1], 0)
             [tableau1].Cells(p, 1).Delete Shift:=xlUp
             Target.Delete
           End If
         End If
       End If
      End If
      Cancel = True
    End Sub
    Boisgontier
    Fichiers attachés Fichiers attachés

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 827
    Par défaut
    Bonjour BOISGONTIER.

    Merci pour votre réponse.

    Vos 2 solutions permettent de supprimer un élément de la liste d'une autre feuille du classeur.

    En fait je n'utilise pas de liste dans ou une autre feuille du classeur.

    Je souhaiterai ajouter ou supprimer un des éléments directement dans le contrôle "Source" de la "Liste" dans la boîte de dialogue "Validation des données".

Discussions similaires

  1. Suppression d'un élément dans une liste chainée
    Par jbarreau-mainson dans le forum Débuter
    Réponses: 1
    Dernier message: 06/05/2009, 15h49
  2. Réponses: 12
    Dernier message: 12/03/2007, 16h58
  3. Suppression d' éléments dans une liste.
    Par conan76 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/03/2007, 09h33
  4. Correction pour ajouté un élément dans une liste
    Par Rifton007 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/01/2007, 11h09
  5. ajouter un élément dans une liste
    Par Le Mérovingien dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 02/07/2006, 17h43

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