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 :

Code VBA - Validation de données [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Par défaut Code VBA - Validation de données
    Bonjour,

    J'ai besoin d'une petite aide.

    j'ai fais un code ya pas si longtemps, qui me permet d'ajouter des valeurs d'aprés une liste créer a partir d'une userform et la valeur choisi ce met automatiquement dans une validation de données que j'avais créer.

    le résultat de la useform choisi par l'utilisateur a comme nom de variable cmbLang.Value

    En faite, ce que je cherche a faire, c'est que par exemple si l'utilisateur choisi comme valeur TOTO, TOTO est automatiquement ajouter dans la validation de données, Or si il refait la meme chose en remettant TOTO, il me remet une deuxieme fois.

    Ce que je voudrai c'est que avant qu'il m'ajoute TOTO dans la validation de données, il me fais une vérife pour voir si il est pas déja présent et si il est présent il me dit "Existe deja" sinon il continue la procédure.

    Voici le code :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private Sub btnOK_Click()
     
    Dim list As String
    Dim language As String
    Dim colvide As Integer
    Dim line As Long
     
     
     
        MsgBox "Vous avez saisi : " & cmbLang.Value
     
     
        list = Worksheets("Init").Range("Lang").Validation.Formula1
        'Se place dans la case "Lang" pour faire une nouvelle Formule de Validation de Données
        list = Replace(list, ";", ",")
        'Remplace le ; par , car en VB la syntaxe est différente
     
     
        With Range("Lang").Validation
        'Utilise la case "Lang" pour faire la validation de données
            .Delete
            'Efface la liste qu'il y avait avant dans la cellule.
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=list & "," & cmbLang.Value
            'Rajoute les valeurs dans un Validation de Données
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
     
        End With
     
     
            line = 2
            colvide = Cells(line, 256).End(xlToLeft).Column + 1
            'permet de trouver la derniére case Vide de la ligne 2
            Cells(line, colvide) = cmbLang.Value
            'Implante dans la case vide trouvé la valeur de cmbLang.Value
     
     
     
    Unload Me
     
    End Sub

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Si j'ai bien compris les éléments de ta liste sont dans la ligne 2 de la feuille Init, c'est bien ça?
    Si oui, à mon avis tu peux utiliser un .Find avant d'adapter ta liste...
    A+

    Edit: Ajout d'un exemple si la liste est bien dans la ligne 2 de la feuille Init
    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
    Dim list As String
    Dim language As String
    Dim colvide As Integer
    Dim line As Long
    Dim MaPlage As Range, MaRech As Range
     
         MsgBox "Vous avez saisi : " & cmbLang.Value
     
         Set MaPlage = Sheets("Init").Range(Cells(2, 1), Cells(2, Cells(2, 256).End(xlToLeft).Column + 1))
         With MaPlage
            Set MaRech = .Find(cmbLang.value, LookIn:=xlValues)
                If Not MaRech Is Nothing Then
                    MsgBox "élément déjà présent"
                    Exit Sub
                End If
         End With
     
    ' Et le reste de ton code...

  3. #3
    Membre confirmé Avatar de Maiden002
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 137
    Par défaut
    Oui c'est tout a fais sa.

    Sa marche nikel merci beaucoup a toi

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

Discussions similaires

  1. [XL-2010] Générer un reporting Word via un code VBA et des données Excel
    Par scaredof dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 06/12/2013, 16h35
  2. [AC-2007] Librairie vba validation de données Ms access
    Par jaug_456 dans le forum Access
    Réponses: 4
    Dernier message: 15/07/2012, 00h58
  3. [XL-2007] Code VBA pour lire données d'un tableau dans Excel
    Par PierreL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/10/2009, 19h31
  4. [XL-2003] Code VBA - Validation de données
    Par Maiden002 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 03/08/2009, 16h00
  5. Code VBA-Base de données en lecture seule
    Par @lex7020 dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/11/2007, 16h12

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