Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 15h54   #1
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
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 :
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
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h15   #2
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
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.
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h24   #3
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
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é
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h47   #4
Membre actif
 
Homme Quentin D.
Étudiant
Inscription : avril 2011
Messages : 175
Détails du profil
Informations personnelles :
Nom : Homme Quentin D.
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : avril 2011
Messages : 175
Points : 165
Points : 165
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...
)
Nitromard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 19h31   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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 :
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 21h30   #6
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
Citation:
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) ?
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 03h31   #7
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 15h45   #8
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
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
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 16h01   #9
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

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

Code :
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 16h16   #10
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
C'est bizarre, quand j'essaie d'initialiser ma variable avec la valeur de la row de la cellule active, donc comme ceci :
Code :
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 ?
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 19h06   #11
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 968
Points : 30 968
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Chez moi celle ligne fonctionne :

Code :
1
2
3
Private Sub Spreadsheet0_SelectionChange()
    MsgBox Me.Spreadsheet0.ActiveCell.Row
End Sub
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 19h56   #12
Invité régulier
 
Inscription : mai 2011
Messages : 47
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 47
Points : 8
Points : 8
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
robx2309 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h08.


 
 
 
 
Partenaires

Hébergement Web