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

VBA Access Discussion :

Spreadsheet Object Office 11 + Cells Validation


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut Spreadsheet Object Office 11 + Cells Validation
    Bonjour,

    Je voudrais savoir si quelqu'un a déjà essayé de protéger les cellules d'une spreadsheet par la fonction Validation.

    Sous Excel

    le code suivant fonctionne tres bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    With  Sheets(1).Range("A1", "B2").Validation
            .Delete
            .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
            :=xlBetween, Formula1:="0", Formula2:="100"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
    End With


    Sous Access

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.SpreadSheet0.Sheet(1).Range("A1","B2").Validation
    ne fonctionne pas.

    Je me demande si l'object spreadsheet supporte cette fonction?
    Si non, auriez vous une autre alternative?


    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour protéger tes données, un coup d'œil à cet article :http://starec.developpez.com/tuto/listesowc/

    Sur ce chapitre III-C-4. Finalisation de la liste

    N'hésites pas à utiliser l'explorateur d'objet (F2) pour voir toutes les propriétés, je l'utilise avant l'aide, et l'aide pour voir la syntaxe.

    Il y a moins de propriétés que dans une feuille Excel.

    Starec

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci pour ta réponse.

    En effet je n'ai trouvé que la fonction Validate via l'explorateur d'objet.

    Pour ce qui est de la validation des données, je cherche a vérifier que l'utilisateur ne saisit que des nombres décimaux.

    Comme la fonction validation n'existe pas pour ce composant, je pensais passer par un évènement, mais je ne vois pas trop comment pour l'instant..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je viens de télécharger le composant (je l'avais plus, je suis sur un poste en Vista et Access 2007), il semblerait que l'évènement SheetChange soir l'idéal, car tu peux récupérer la target, donc la cellule, ce qui te permettrait de faire un test.

    C'est juste une idée à tester.

    Starec

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci ça semble pas mal en effet

    Par contre je bloque sur son utilisation.

    Dans le code de ma form ou qui contient le composant owc

    J'ai ajouté la déclaration suivante (sp étant le nom de la spreadsheet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub sp_SheetChange(Sh As Worksheet, Target As Range)
     
    ......
     
    End Sub

    Lors de la compilation j'obtiens le message d'erreur suivant :

    Procedure Declaration does not match description of event or procedure having the same name
    Merci pour ton aide.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    je n'ai pas eut de soucis lorsque j'ai fais le test. Regardes si tu n'as pas deux fois la même procédure évènementielle ?

    Starec

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Vraissembablement pas

    J'ai mis un exemple en pièce jointe, d'une base vierge avec une form et un control owc11.

    Je lui ai ajouté la procédure sheetChange.

    Rien à faire ça compile ne pas
    Fichiers attachés Fichiers attachés

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Effectivement, cela ne compile pas.

    J'ai supprimé la procédure, refait la sélection du sheet et de l'évènement et c'est bon, cela à compilé.

    Par contre ta base est au format 2000, est-ce le cas en réalité ?

    Car il y a plusieurs composants OWC11 pour 2003 et 2007 (je suis sur 2007), OWC10 pour 2002.

    Starec

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    re,

    pour moi ma base est au format 2003 sp2.

    Désolé, Je n'ai pas vraiment compris ce que tu as fait pour que ça compile.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    J'ai tout simplement supprimer la procédure et tout refait. Mets ta base au format 2003.

    Edit : Je t'avoue que je n'ai eut aucun problème avec ce composant sous 2002 et OWC 10 (ce qui m'a servi pour mes articles) et là sous 2007 et OWC 11.

    Starec

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    J'ai crée une base vierge que j'ai directement converti au format 2002-2003.
    J'ai crée une form avec un composant owc11 puis avec un composant owc10.

    et j'obtiens toujours une erreur de compilation.

    Je continue à chercher...
    Merci pour ton aide.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci pour ton aide, j'ai enfin compris ce qui n'allait pas.

    la procédure prend en paramètre des objet de type Range et worksheet, mais la déclaration se fait cf ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Spreadsheet2_SheetChange(ByVal sh As Object, ByVal Target As Object)

    J'aurais du passer par l'éditeur d'évènement j'aurais sans doute perdu moins de temps...

    J'ai ajouté mes controles donc tout est ok.

    merci.

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

Discussions similaires

  1. [XL-2007] Spreadsheet introuvable office 2007
    Par UDSP50 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/02/2014, 22h31
  2. Réponses: 6
    Dernier message: 18/05/2011, 18h15
  3. [XHTML] Balise <object> dans <noscript> et validation XHTML
    Par Delprog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 10/07/2008, 08h50
  4. A propose de 4D Office Object Library
    Par Turtle_fr dans le forum 4D
    Réponses: 16
    Dernier message: 19/02/2007, 20h39
  5. Réponses: 2
    Dernier message: 30/08/2005, 16h08

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