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 :

Validation de données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Par défaut Validation de données
    Bonjour,

    je rencontre le même problème que décrit dans ce post. La macro associée corrompt systématiquement le fichier. Une solution a été proposée mais je ne comprends pas sa mise en oeuvre. Il est question d'un Add'in.
    Je ne sais pas comment faire autrement, le but étant de proposer des listes de validation qui ne contiennent que les valeurs non affectées. Je sais qu'il existe une solution avec les fonctions mais compte tenu du nombre d'onglets le nombre de zone nommées va être très important. C'est pour cette raison que je souhaite développer une solution en VBA.

    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour une liste de données dont les éléments sont trop nombreux, j'utilise la procédure événementielle (BeforeDoubleClick), qui vérifie si la cellule où a eu lieu le double clic contient une Validation de données List si c'est le cas, j'invoque une procédure nommée ImprovedDataValidation qui lance un UserForm qui affiche dans un ListBox la table et une zone de texte permet de faire une recherche avec filtre.

    Pour que cela fonctionne, j'ai mis comme contrainte, la référence à une plage nommée qui elle même fait référence à une colonne d'un tableau structuré.

    Cette procédure peut bien entendu être placée dans un AddIn (classeur xlam)

    Code de la procédure événementielle qui invoque la procédure ImprovedDataValidation
    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 Workbook_SheetBeforeDoubleClick(ByVal sh As Object, ByVal Target As Range, Cancel As Boolean)
      ' Interception du double click pour lancer la boîte de dialogue (replace DataValidation)
      Dim rngValidation As Range
      Dim txt As String
      Dim ValidationType As Byte
      With Target
        ' Check if Target is ValidateList
        On Error Resume Next
        ValidationType = .Validation.Type
        On Error GoTo 0
        If ValidationType = xlValidateList Then
            txt = mStdUserForm.ImprovedDataValidation(usfImprovedDataValidation, .Validation.Formula1, .Value)
           .Value = txt
            Cancel = True
         End If
      End With
      Set rngValidation = Nothing
    End Sub
    La procédure invoquée a trois arguments, l'objet UserForm à afficher, la référence à la liste dans la validation de données (Target.Validation.Formula1) et la valeur présente dans la cellule où a eu lieu le double clic et la valeur présente dans la cellule où a eu lieu le double clic. Elle renvoie la valeur qui aura été sélectionnée dans le ListBox du UserForm ou l'ancienne valeur si aucune sélection n'a eu lieu
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 46
    Par défaut
    Merci pour votre réponse précise, je teste cela dès que possible.

    Bonne journée

Discussions similaires

  1. [Excel] Validation de données
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 21/12/2005, 19h35
  2. Problème de validation de données
    Par loutsky dans le forum Access
    Réponses: 3
    Dernier message: 23/11/2005, 14h11
  3. validation de donnée... et post
    Par sonialem2000 dans le forum Bases de données
    Réponses: 12
    Dernier message: 13/07/2004, 02h34
  4. dbgrid AND validation des données
    Par samlerouge dans le forum Bases de données
    Réponses: 10
    Dernier message: 11/06/2004, 23h08
  5. Validation de données à partir d'un XML Schema
    Par leup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2004, 08h30

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