Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 26/08/2011, 05h53   #1
Futur Membre du Club
 
Étudiant
Inscription : août 2011
Messages : 38
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 38
Points : 18
Points : 18
Par défaut erreur lors du lancement d'une macro

Bonjour,

Je débute en VBA et sur MS Access. Et là je bloque.... ^^'
But de la macro : changer la couleur de fond d'un rectangle (Box_ps_state) en fonction du choix effectué dans une lise déroulante (ps_state, au choix Done, In progress ou Undone). Je passe par l'event Onchange.

Voici ce que j'ai mis dans l'éditeur VBA:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub ps_state_Change()
 
    Select Case ps_state
        Case "Done"
            Box_ps_state.BackColor = Color.green
        Case "Undone"
            Box_ps_state.BackColor = Color.red
        Case "In progress"
            Box_ps_state.BackColor = Color.yellow
        Case Else
            Box_ps_state.BackColor = Color.none
 
End Sub
Voici l'erreur affichée: "Compil error : Invalid qualifier" (et ça surligne la première ligne : private sub....)
J'ai cherché un peu partout mais je n'arrive pas à comprendre ce qui pêche.

Une idée?

Merci d'avance pour le coup de pouce
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 06h05   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
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 620
Points : 30 945
Points : 30 945
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Déjà il te manque un End Select.

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 26/08/2011, 06h12   #3
Futur Membre du Club
 
Étudiant
Inscription : août 2011
Messages : 38
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 38
Points : 18
Points : 18
ouaip,

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Private Sub ps_state_Change()
 
  Select Case ps_state
        Case "Done"
            Box_ps_state.BackColor = Color.green
        Case "Undone"
            Box_ps_state.BackColor = Color.red
        Case "In progress"
            Box_ps_state.BackColor = Color.yellow
        Case Else
            Box_ps_state.BackColor = Color.none
    End Select
 
End Sub
Tjrs le même problème par contre
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2011, 08h24   #4
Membre confirmé
 
Avatar de lelensois16
 
Homme Romain M.
Étudiant
Inscription : avril 2009
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Romain M.
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 167
Points : 204
Points : 204
Bonjour,

Et si vous remplaciez l'évenement OnChange par l'évenement OnClick ?

Cdt
lelensois16 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 22h45   #5
Futur Membre du Club
 
Étudiant
Inscription : août 2011
Messages : 38
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 38
Points : 18
Points : 18
J'ai essayé différents types d'évènements.
sans succès.
Le problème est tjrs le même.

Quand je passe en mode "View", modifie la sélection dans ma liste déroulante.
L'erreur "invalid qualifier" (+ première ligne surlignée) apparait dans la console vba.

.....
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2011, 22h56   #6
Futur Membre du Club
 
Étudiant
Inscription : août 2011
Messages : 38
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 38
Points : 18
Points : 18
Voici l'intégralité de mon code (j'ai aussi mis une horloge qui marche)
Events : Onclick, Ontimer and Timer interval (1000)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Click()
Select Case ps_state
        Case "Done"
            Box_ps_state.BackColor = Color.green
        Case "Undone"
            Box_ps_state.BackColor = Color.red
        Case "In progress"
            Box_ps_state.BackColor = Color.yellow
        Case Else
            Box_ps_state.BackColor = Color.none
    End Select
End Sub
 
 
Private Sub Form_Timer()
    Me!lblClock.Caption = Format(Now, "dddd, mmm d yyyy, hh:mm:ss AMPM")
End Sub
Il semblerait que le problème viennent des évènements sélectionnés.... Si je choisi parmi la liste d'events spécifique (à la liste déroulante), ça bug.
Si je choisi parmi la liste d'events complète (qui concerne toute la page), à priori pas d'erreur mais pas de changement de couleur non plus.
david89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 04h40   #7
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
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 620
Points : 30 945
Points : 30 945
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Utilises l'évènement AfterUpdate de ta liste :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub ps_state_AfterUpdate()
 
  Select Case me.ps_state.Value
        Case "Done"
            Box_ps_state.BackColor = Color.green
        Case "Undone"
            Box_ps_state.BackColor = Color.red
        Case "In progress"
            Box_ps_state.BackColor = Color.yellow
        Case Else
            Box_ps_state.BackColor = Color.none
    End Select
 
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 29/08/2011, 05h28   #8
Futur Membre du Club
 
Étudiant
Inscription : août 2011
Messages : 38
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2011
Messages : 38
Points : 18
Points : 18
Re,
Merci pour ta réponse (à priori j'avais des erreurs au niveau des couleurs)
Cependant, j'ai exactement le même problème qu'au début : "invalid qualifier" :s
(Est ce que ton code marche sur ta machine?)

Je me demande si ça ne marcherait pas mieux avec un groupe d'options plutôt qu'une liste déroulante. Donc je réessaye.
J'ai tenté de faire un groupe d'option sous access 07 : je crée un rectangle groupe d'options (frame443) dans Form puis je mets des bouttons options(Option445, 447, 449) à l'intérieur ainsi qu'un label (lbl1).
Je tente ce code sans succès (est ce que j'ai fais une erreur de language?):
Code :
1
2
3
4
5
6
7
 
Private Sub Option445_Click()
Me.lbl1.BackColor = Color.Green
End Sub
Private Sub Option447_Click()
Me.lbl1.BackColor = Color.red
End Sub
Quand je clique sur le bouton--> rien, je me demande si je ne dois pas préciser dans le code que le bouton Option est dans le cadre Frame443...

Je n'ai pas de contraintes concernant la façon dont le choix doit s'effectuer : par un groupe d'options, un menu déroulant ou autres.
Mais je ne dois permettre au final qu'un seul choix, ex : a ou b ou c mais pas a/b etc. et ce choix doit entrainer le changement de couleur d'une box, quelqu'elle soit (label, bt...), sur la page... (l'étape suivante sera d'entrainer un changement de couleur d'une box suplémentaire, qui elle sera sur un autre formulaire).
Si quelqu'un a une solution/un exemple... qui marche, je suis tout preneur ^^''
david89 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 03h01.


 
 
 
 
Partenaires

Hébergement Web