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 :

Erreur validation range


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut Erreur validation range
    Bonjour, j'ai une erreur sous Excel 2000 que je n'arrive pas à maitriser, des fois ça marche des fois non, et je ne sais pas pourquoi, voilà l'extrait du 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
     
    Dim area As Range
    (...)
    Set area = Range(Sheets(1).Cells(i, j), Sheets(1).Cells(i, j+8))
    With area
            .Borders(xlEdgeLeft).Weight = xlThin
            .Borders(xlEdgeRight).Weight = xlThin
            .Borders(xlEdgeBottom).Weight = xlThin
            .Interior.ColorIndex = 2
            .Validation.Delete
            .Validation.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
                     Operator:=xlBetween, Formula1:="0", Formula2:="1" 'ça plante ici
            .Locked = False     
        End With
    J'ai "erreur d'exécution 1004
    Erreur définie par l'application ou par l'objet"

    J'ai essayé d'insérer un ".select" avant la validation pour comprendre, et des fois même ça plante.
    Je sais par exemple que si on ne met pas le ".delete" et qu'il y a déjà une validation ça plante à tous les coups, mais là... je vois vraiment pas !

    Merci d'avance pour votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ça à l'aire de fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set area = Sheets(1).Range(Sheets(1).Cells(i, j), Sheets(1).Cells(i, j + 8))
    With area
        .Borders(xlEdgeLeft).Weight = xlThin
        .Borders(xlEdgeRight).Weight = xlThin
        .Borders(xlEdgeBottom).Weight = xlThin
        .Interior.ColorIndex = 2
        .Validation.Delete
        .Validation.Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0", Formula2:="1" 'ça plante ici
        .Locked = False
    End With

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Ben juste cet extrait oui, mais quand je suis au boulot j'ai une erreur, alors :

    -Soit ça vient de Excel 2000
    -Soit ça vient des lignes d'avant

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    cette ligne me gêne quand même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set area = Range(Sheets(1).Cells(i, j), Sheets(1).Cells(i, j+8))
    il fallait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set area = sheets(1).Range(Sheets(1).Cells(i, j), Sheets(1).Cells(i, j+8))

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 4
    Par défaut
    Oui effectivement, je l'avais mis au début et j'avais vu que ça marchait en l'enlevant, je vois pas trop l'intérêt de le mettre partout, pour moi dès qu'on met :
    sheets(1).range(...) on sait que la plage est est dans la feuille 1, enfin bon c'est sûrement plus propre.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    si sheets(1) n'est pas la feuille active, tu auras des désagréments
    c'est pas un choix

Discussions similaires

  1. Erreur excel Range(colHeader
    Par totoche dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/02/2014, 11h56
  2. [XSD] Erreur validation dans xml spy
    Par ebaynaud dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2007, 14h27
  3. [Struts] Message d'erreur Validate Action Form
    Par cosmos38240 dans le forum Struts 1
    Réponses: 7
    Dernier message: 26/10/2005, 11h05
  4. Erreur validation fichier après un OpenDialog
    Par jackrabbit dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2005, 13h28

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