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

Excel Discussion :

Validation Date Application-defined Error [XL-2007]


Sujet :

Excel

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut Validation Date Application-defined Error
    Salut la communaute,
    J ai une petite question pour vous ce matin.
    Je veux parametrer la plage A1:A5 pour qu elle ne prenne que dees dates comprises entre 01/04/2010 et 30/04/2010. Jai mis la premiere date dans la cellule B6 et la deuxieme date dans la cellule C7.
    L enregistreur de macro me donne: Formula1:
    ="=B", Formula2:="=C"
    au lieu de :
    Formula1:="=B6", Formula2:="=C7"
    l enregistreur ignore de mettre les reference Lignes de mes cellules.
    Le resultat est que quand j essaie d executer ma macro, j ai Aplication-defined error.

    Merci de m aider a comprendre ce qui ne va pas.
    Cordiallement.
    Voici mon code:

    Sub ValidationDate()

    Range("A1:A5").Select
    With Selection.Validation
    .Delete
    .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=B", Formula2:="=C"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = "ValidDate"
    .ErrorTitle = "Message d erreur "
    .InputMessage = "le mois d avril"
    .ErrorMessage = "que les dates d avril svp"
    .ShowInput = True
    .ShowError = True
    End With
    End Sub

  2. #2
    Membre émérite 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 : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Sauf erreur de ma part, les Formula pour une Validation n'accepte pas une "formule" dans le code, je pense que tu dois passer par des variables qui récupèrent les valeurs contenues dans tes cellules.
    Je verrais plutôt un truc du genre:
    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
    Sub ValidationDate()
     
    Dim DateDeb As Date, DateFin As Date
     
    DateDeb = Sheets("NomDeTaFeuille").Range("B6").Value
    DateFin = Sheets("NomDeTaFeuille").Range("B7").Value
     
    With Range("A1:A5").Validation
        .Delete
        .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=DateDeb, Formula2:=DateFin
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "ValidDate"
        .ErrorTitle = "Message d erreur "
        .InputMessage = "le mois d avril"
        .ErrorMessage = "que les dates d avril svp"
        .ShowInput = True
        .ShowError = True
    End With
     
    End Sub
    A+
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    Merci pour ta prompte reponse,
    je sais que je pouvais proceder de cette(ta) facon.
    Mais je veux comprendre pourquoi VBA me retourne une erreur si je veux executer une macro que l enregistreur lui meme a produite.
    Je precise que ces codes sont produits par l enregistreur et non par moi. Je precise egalement qu aucune erreur ne se produit a l enregistrement. L erreur survient quand je veux executer(cette fois-ci manuellement bien entendu) la meme macro.
    Merci de m aider.









    Citation Envoyé par Fvandermeulen Voir le message
    Salut,
    Sauf erreur de ma part, les Formula pour une Validation n'accepte pas une "formule" dans le code, je pense que tu dois passer par des variables qui récupèrent les valeurs contenues dans tes cellules.
    Je verrais plutôt un truc du genre:
    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
    Sub ValidationDate()
     
    Dim DateDeb As Date, DateFin As Date
     
    DateDeb = Sheets("NomDeTaFeuille").Range("B6").Value
    DateFin = Sheets("NomDeTaFeuille").Range("B7").Value
     
    With Range("A1:A5").Validation
        .Delete
        .Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=DateDeb, Formula2:=DateFin
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = "ValidDate"
        .ErrorTitle = "Message d erreur "
        .InputMessage = "le mois d avril"
        .ErrorMessage = "que les dates d avril svp"
        .ShowInput = True
        .ShowError = True
    End With
     
    End Sub
    A+

  4. #4
    Membre émérite 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 : 48
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Désolé, sur ce point je n'ai pas la réponse, il y a plusieurs cas comme ça, ou l'enregistreur n'est pas parfait...mais il faut toujours garder à l'esprit, même si le code fourni par l'enregistreur fonctionne après, c'est de l'adapter pour l'optimiser.

    A+
    N'oubliez pas le si votre problème est solutionné.

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 252
    Points : 125
    Points
    125
    Par défaut
    tu as parfaitement raison.
    merci pour ton aide. je veins d en avoir la confirmation et
    apparemment il y a le meme bug dans d autres versions d excel egalemt.
    donc je ne revais pas . lol

    merci.





    Citation Envoyé par Fvandermeulen Voir le message
    Désolé, sur ce point je n'ai pas la réponse, il y a plusieurs cas comme ça, ou l'enregistreur n'est pas parfait...mais il faut toujours garder à l'esprit, même si le code fourni par l'enregistreur fonctionne après, c'est de l'adapter pour l'optimiser.

    A+

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

Discussions similaires

  1. [XL-2010] Run time error 1004 Application defined or object defined
    Par AmbreM dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/09/2013, 18h00
  2. Application-defined or object-defined error
    Par Vivi127 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/09/2011, 12h42
  3. Réponses: 1
    Dernier message: 20/02/2010, 08h03
  4. [XL-2003] Error 1004 - Application-defined or object-defined
    Par DaRisK dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2009, 19h49
  5. Application Defined - or Object error
    Par nono le golfeur dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 25/06/2007, 16h47

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