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

IHM Discussion :

Probleme avec un controle spreadsheet sur mon formulaire [AC-2003]


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut Probleme avec un controle spreadsheet sur mon formulaire
    Bonjour tout le monde,
    J'ai un probleme avec un formulaire Access que je suis en ce moment en train de realiser : j'ai inclus dans ce formulaire un controle spreadsheet Excel (nom exact du controle : Microsoft Office Spreadsheet 11.0). Et sur cette spreadsheet j'aimerais gerer l'evenement SelectionChange, donc je tape ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub nomDeMaSpreadsheet_SelectionChange(ByVal Target As Range)
    ' Mon code ...
    End Sub
    Mais le probleme c'est que quqnd je lance mon formulaire, j'ai une erreur qui apparait me disant : "The Expression ViewChange you entered as the event property setting produced the following error : Procedure declaration does not match description of event or procedure having the same name." Et ca me fait ca avec tous les evenements qui se passent sur mon controle spreadsheet, alors que je ne les gere meme pas dans mon code VBA. Cependant j'ai aussi la meme erreur avec l'evenement selectionChange.

    Toute aide serait la bienvenue

  2. #2
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Bonjour robx2309,

    Je ne suis pas un pro en VBA mais essaye de changer le nom de ta fonction car la procédure SelectionChange existe déjà dans VBA.
    Ajoute peut être un _ entre les mots ou bien change ton verbe.

    Ou bien essaye justement en enlevant le _ entre le nom de ta spreadsheet et le SelectionChange pour justement utiliser cette procédure.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut
    Salut,
    Merci du conseil mais ca ne marche toujours pas, si je change le nom de la fonction elle n'est plus reconnue comme un gestionnaire d'evenement. Donc je n'ai plus d'erreurs au lancement de mon formulaire, mais l'evenement selectionChange n'est pas geré

  4. #4
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 175
    Points : 223
    Points
    223
    Par défaut
    Bon j'ai regardé un peu sur internet et j'ai l'impression qu'il existe une fonction SelectionChange sur access qui soit différente de celle sur Excel et donc il y aurait peut être un conflit de compréhension d'access :

    http://msdn.microsoft.com/en-us/libr...ffice.11).aspx

    http://msdn.microsoft.com/en-us/libr...ffice.11).aspx

    Enfin je ne suis pas sûr autant attendre une réponse de pro ^^!

    Désolé.

    (Peut être tu pourrais faire différent tests que si j'avais ce problème j'essayerais du genre :
    -Mettre le nom du formulaire à la place du nom de la spreadsheet.
    - Ou bien : Mettre Private Sub nomDeMaSpreadsheet_SelectionChange(ByVal Target As Range.Excel) pour tester si le problème vient du fait qu'il ne reconnait pas le Range...
    )

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

    Pour avoir utiliser ce composant dans deux mes tutos, je viens de refaire un essai dans un formulaire, cet évènement fonctionne correctement.

    Tu écris alors que je ne les gere meme pas dans mon code VBA. alors comment fais-tu pour écrire ce code ?

    Parce que l'évènement (bidon ) que je viens de tester n'admet pas d'arguments :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Spreadsheet0_SelectionChange()
        MsgBox "sfs"
    End Sub
    Attention, ce composant ne reprend pas intégralement les propriétés, méthodes et évènements d'une feuille Excel.

    Lorsque tu as installé celui-ci, sélectionne le composant dans la fenêtre de l'éditeur VBE et tu auras les évènements correspondants.

    En résumant, ne pas se fier au code d'Excel à 100 % pour utiliser ce composant.

    Philippe

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut
    alors comment fais-tu pour écrire ce code ?
    Justement c'est ca que je me demande, il semblerait que le faite que ma gestion de l'evenement selectionChange bug fait planter tous les autres evenements de la spreadsheet.

    Sinon selon la doc de Microsoft (merci Nitromard pour les liens) , l'evenement selectionChange sur Access ne prend pas d'argument 'Target As Range', ni aucun autre d'ailleurs.
    Or c'est de ca dont j'ai besoin (dans mon application je veux faire des traitements differents en fonction de la colonne de la cellule selectionnee).

    Donc savez vous s'il y a un autre moyen de recuperer le numero de colonne/ cellule de la ou les case(s) selectionnee(s) ?

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

    Je vais t'inviter à lire mes deux tutos sur le sujet :

    La Mise en Forme Conditionnelle Illimitée sous Access
    De nouvelles listes pour vos formulaires Access

    Notamment l'utilisation de l'évènement Click sur cette partie : http://starec.developpez.com/tuto/listesowc/#LIII-C-5

    Philippe

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut
    Merci pour les tutos, ils m'ont bien aide mais pas pour la chose que je cherchais a la base. Donc est-ce que tu saurais si il est possible, dans la gestion de l'evenement selectionChange sur un controle spreadsheet dans un formulaire, de récuperer la/les cases selectionnées ? Ou au mois leurs coordonnées

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

    Je crois que tu n'as pas bien regardé le code du dernier lien que je t'ai donné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lngRow = wksOwc.ActiveCell.Row
    Déjà pour la ligne , la suite vient naturellement.

    Penses à utiliser l'explorateur d'objets (F2) dans l'éditeur VB pour ce composant.

    Philippe

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut
    C'est bizarre, quand j'essaie d'initialiser ma variable avec la valeur de la row de la cellule active, donc comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lngRow = wksOwc.ActiveCell.Row
    J'ai une erreur au moment ou je change de selection sur mon controle (donc au moment ou j'appel la fonction selectionChange, logique). L'erreur me dit : "Object variable or With block variable not set".

    Peut etre qu'activeCell ne marche pas avec l'evenement selectionChange ?

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

    Chez moi celle ligne fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Spreadsheet0_SelectionChange()
        MsgBox Me.Spreadsheet0.ActiveCell.Row
    End Sub
    Philippe

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2011
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 53
    Points : 28
    Points
    28
    Par défaut
    Effectivement ca marche, je l'avais pas écrit comme ca.
    En tout cas merci de votre aide, problème résolu.
    Heureusement que vous etes la sinon je sais pas trop comment je me débrouillerais

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

Discussions similaires

  1. problème avec l'affichage de ma requête sur mon formulaire
    Par nabgre dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/05/2012, 19h29
  2. Réponses: 3
    Dernier message: 18/05/2011, 17h50
  3. Réponses: 3
    Dernier message: 01/02/2011, 18h37
  4. la date et heure sur mon formulaire
    Par azde7015 dans le forum Access
    Réponses: 11
    Dernier message: 07/02/2006, 10h40
  5. [C#] problem avec repeater control
    Par moniphal dans le forum ASP.NET
    Réponses: 13
    Dernier message: 27/04/2005, 09h27

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