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
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut Validation de données
    bonjour.

    Dans ma macro qui se lance au démarrage de mon fichier je doit mettre en forme des cellules avec validation de données.

    Volia le bout de 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
     
     
    Sub Macro1()
        Sheets("Element").Select ' je selection ma feuille
        Range("B15").Select ' je selectionne ma cellule
        With Selection.Validation ' je programme ma validation de données
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=l_medic" ' ma source qui fait référence à un tableau (l_medic=TABLEAU_MEDIC[NOM])
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = False
        End With
    End Sub
    cette macro fonctionne très bien
    maintenant disons que ma liste est tellement longue que j'aimerai taper une lettre pour diminuer la quantité de nom dans ma 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
    17
    18
     
    Sub Macro1()
        Sheets("Element").Select ' je selection ma feuille
        Range("B15").Select ' je selectionne ma cellule
        With Selection.Validation ' je programme ma validation de données
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=SI(B15<>"""";DECALER(l_medic;EQUIV(B15&""*"";l_medic;0)-1;;NB.SI(l_medic;B15&""*"");1);l_medic)" ' ma source qui fait référence à un tableau (l_medic=TABLEAU_MEDIC[NOM])
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = False
        End With
    End Sub
    Celle ci me renvoie une erreur 1004 erreur définie par l'application ou par l'objet
    Part contre si je fait ma validation de données à la main, cela fonctionne très bien...

    Pourriez vous m'aider à trouver une solution pour ne plus avoir cette erreur?

    Merci aide de 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 169
    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 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mets la formule en anglais et n'oublie pas de séparer les arguments par une virgule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=IF(B15<>"""",OFFSET(l_medic,MATCH(B15 & ""*"",l_medic,0)-1,,COUNTIF(l_medic,B15 & ""*""),1),l_medic)"
    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
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    Merci pour la réponse rapide.

    Si je mets formulalocal à la place de formula1 cela devrait fonctionner avec une formule en francais. Est la cela ne fonctionne pas non plus, même en mettant les virgule.

    tu en as a raison?

    En tout je vais mettre celle que tu m'as donné, elle fonctionne.

  4. #4
    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 169
    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 169
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si je mets formulalocal à la place de formula1 cela devrait fonctionner avec une formule en francais. Est la cela ne fonctionne pas non plus, même en mettant les virgule.
    Le temps passé à la maintenance est tel que pour éviter les problèmes, je ne mets jamais les formules en français.
    Il faut chercher la tranquillité.

    Pourquoi ne pas utiliser la propriété FormulaLocal ?
    L'entreprise dans laquelle tu travailles est rachetée par une société étrangère et impose Office en anglais
    Tu décides de déménager et tu t'installes en Russie, en Amérique, etc. et tu achètes la version Excel locale.
    Voilà deux scénarios où tu passeras un certain temps à effectuer les corrections nécessaires et franchement pas très constructives.

    Et j'ajouterais que pour être tout à fait tranquille, il est bon d'utiliser les paramètres régionaux
    A lire l'excellent tutoriel de Jean-Philippe André Excel et les paramètres régionaux : Application.International

    Il vaut mieux passer un peu plus de temps à développer et être tranquille pour le futur et rendre perenne nos applications.
    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

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    si tu veux récupérer ta formule en anglais (à utiliser dans la fenêtre d'exécution) :
    - Mettre sa formule dans une cellule, la sélectionner, puis mettre dans la fenêtre d'exécution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Selection.Formula
    - Valider pour récupérer la formule en vba
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 40
    Par défaut
    merci pour l'info et pour la réponse

    super

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

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