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'ouvre ce poste pour savoir une chose, est ce possible de modifier une liste déroulante fait grâce a la Validation de Données (Données ==> Validation )


    En faite dans une feuille appelé "Init" j'ai une liste déroulante créer par la Validation de Données, ou j'ai "EN" et "FR" qui en fait permet de traduire mon fichier Excel en anglais ou Français.

    Le truc c'est que je voudrai faire un bouton ajouter une langue par exemple DE pour Allemand.

    Mais mon réel probléme sa serai que quand j'ai crée la langue, je voudrai qu'il la rajoute directement dans ma liste déroulante fait par la Validation de Données


    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    C'est possible. Cependant, tu ne modifies pas réellement ta liste mais tu la recrées.

    Voilà un exemple :

    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
    Dim temp As String
     
        temp = Range("A1").Validation.Formula1
        temp = Replace(temp, ";", ",")
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=temp & ",DE"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    A+

    EDIT : c'est du bricolage mais ça marche. Tu remarqueras que j'ai ajouté DE en dur dans le code mais tu peux aisément le faire provenir d'où tu veux.

  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
    Donc si je la recrée sa va m'éffacer les anciennes langue qui avait dessus ??? Sinon on peu lui dire de rajoute une plage de données, par exemple mes "EN", "FR" sont écrit en dure quelque part, je peux dire de prendre ces valeurs la ?

    Disons que "DE" sera une variable appelé Langue car il se pourrai a la volonté de l'utilisateur qu'il ajoute plusieurs langue comme bon lui semble.

    Quand j'aurai cliqué sur mon bouton , il va me sortir une imputbox me demandans qu'elles Langue voulez vous ajouter, soit il dis DE ou IT ou ES , etc

    Pourrai tu m'expliquez un peu ton code s'il te plait. Car j'ai encore un peut de mal avec le VB, sa serai gentil.

    Merci beaucoup

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Le code que je t'ai proposé fait exactement ce que tu souhaites. Crée une liste en A1 avec ce que tu veux. Rajoute mon code dans une procédure VBA et lance-le. Tu verras bien.

    En gros, le code reprend les valeurs de ta liste, les garde en mémoire et recrée une autre liste au même endroit avec ces valeurs plus la nouvelle. C'est du bricolage qui marche.

    Voila le code final avec ton InputBox :

    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
    Sub test()
     
    Dim temp As String
    Dim lang As String
     
        lang = InputBox("Rentrez la langue souhaitée :")
     
        temp = Range("A1").Validation.Formula1
        temp = Replace(temp, ";", ",")
     
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=temp & "," & lang
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
    End Sub
    A+

  5. #5
    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
    Re,

    Je viens de le tester, je pense qu'il y a une erreur, car il marche mais il garde pas en mémoire ce que j'avais deja avant.

    J'avais "FR" et "EN" et quand j'ai fais ajouter "DE" il ma supprimer tout les autres et ma bien "DE"

    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
    Sub test()
     
    Dim temp As String
    Dim lang As String
     
        lang = InputBox("Rentrez la langue souhaitée :")
     
        temp = Range("A1").Validation.Formula1
        temp = Replace(temp, ";", ",")
     
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=temp & "," & lang
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
    End Sub
    N'y aurait t'il pas une erreur sur le .Delete aprés With("A1").Validation

    EDIT : C'est bon sa marche , j'avais oublier de modifier une variable, car je les est modifier selon mon fichier

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Ca fonctionne très bien pour moi et il n'y a aucune erreur...

    Si j'ai FR et EN et que je rajoute DE, je me retrouve bien avec les 3 etc.

    Si tu ne fais pas ta liste dans la cellule A1 il faut que tu modifies dans le code Tu feras gaffe, on retrouve cela à plusieurs endroits dans le code...

+ 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: 2
    Dernier message: 29/09/2009, 14h27
  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