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 06/11/2011, 12h34   #1
Membre du Club
 
Homme
Channel Support Coordinator
Inscription : avril 2011
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : Algérie

Informations professionnelles :
Activité : Channel Support Coordinator
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2011
Messages : 94
Points : 40
Points : 40
Envoyer un message via MSN à lakhdar16
Par défaut BD ne trouve pas le champ "MyLabel" au quel il est fait référence dans votre expression

Bonjour à tous,

Voila j'ai une fonction qui change l'affichage de la souris sur déplacement, je voulais aussi ajouter le changement de Backcolor et Forecolor de l'objet Label, ci-dessous la fonction:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Const IDC_HAND = 32649
    Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
    Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
 
 
Function ChangeMouseToHandBackColor(ByVal i As Long)
    Dim hCur As Long
 
Dim MyLabel As String
 
       hCur = LoadCursor(0, IDC_HAND)
 
        If (hCur > 0) Then
        SetCursor hCur
        ForeColor = vbRed
        For i = 34 To 39
        MyLabel = "Étiquette" & i
        With Me![MyLabel]
        .ForeColor = vbBlack
        .BackColor = RGB(240, 213, 48)
        End With
        Next i
    End If
End Function
sur souris déplacé de l'Etiquette34 jusqu'au Etiquette39 j'ai fais :

Code :
1
2
3
Private Sub Étiquette34_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ChangeMouseToHandBackColor 34
End Sub
mais je reçois l'erreur 2465 champ "MyLabel" non trouvé..

s'il vous plait quelqu'un peut m'aider afin que le passage de la souris sur l'étiquette change en main et aussi change le backcolor et le forecolor.

merci d'avance.
lakhdar16 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 14h51   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Essaie de remplacer
par
Code :
        With Me.Controls(MyLabel)
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/11/2011, 14h52   #3
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 178
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 178
Points : 193
Points : 193
Enlève le "É" .... et met "E" de :
Code :
1
2
3
4
5
6
7
8
9
10
If (hCur > 0) Then
        SetCursor hCur
        ForeColor = vbRed
        For i = 34 To 39
        MyLabel = "Etiquette" & i 'ICI ....  OU "[Étiquette]"
        With Me![MyLabel]
        .ForeColor = vbBlack
        .BackColor = RGB(240, 213, 48)
        End With
        Next i
et ici :
Code :
Private Sub Étiquette34_MouseMove(Button A
Tupeut allez lire un peu ici http://argyronet.developpez.com/office/vba/convention/
__________________
Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
  • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
  • Si votre Post est indiquez le....
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 16h23   #4
Membre du Club
 
Homme
Channel Support Coordinator
Inscription : avril 2011
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : Algérie

Informations professionnelles :
Activité : Channel Support Coordinator
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2011
Messages : 94
Points : 40
Points : 40
Envoyer un message via MSN à lakhdar16
Bonjour,

Merci robyseb et LedZeppII pour vos réponses, j'ai essayé les deux méthodes, la méthode de LedZeppII marche nickel mais j'ai un autre souci, quand la souris déplace sur le contrôle le backcolor et le forecolore change ainsi la souris qui se transforme en main et quand je sors la souris se change par défaut mais l'étiquette garde la nouvelle couleur du fond et de la police et ne revient pas à la couleur par défaut

Code :
1
2
.Forcolore = VbWhite
.BackColor = RGB (0,0,0)
se que je veux c'est quand je me déplace sur le contrôle la souris et les couleurs change mais quand je sors la souris et les couleur prennent les valeurs par défaut.

voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
Private Const IDC_HAND = 32649
    Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
    Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
 
 
Function ChangeMouseToHandBackColor(ByVal i As Long)
    Dim hCur As Long
 
Dim MyLabel As String
 
       hCur = LoadCursor(0, IDC_HAND)
      MyLabel = "Étiquette" & i
 
        Me.Controls(MyLabel).ForeColor = vbWhite
        Me.Controls(MyLabel).BackColor = RGB(0, 0, 0)
 
        If (hCur > 0) Then
 
        SetCursor hCur
        ForeColor = vbRed
 
        Me.Controls(MyLabel).ForeColor = vbBlack
        Me.Controls(MyLabel).BackColor = RGB(240, 213, 48)
 
    End If
End Function
merci pour votre aide.
lakhdar16 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 19h37   #5
Membre actif
 
Avatar de robyseb
 
Homme Sébastien
Développeur indépendant
Inscription : juillet 2011
Messages : 178
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Localisation : Canada

Informations professionnelles :
Activité : Développeur indépendant

Informations forums :
Inscription : juillet 2011
Messages : 178
Points : 193
Points : 193
il suffit de rétablir la couleur d'origine en gérant l'événement Détail_MouseMove() du formulaire donc tu met le code qui ramène ta couleur originale.
__________________
Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
  • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
  • Si votre Post est indiquez le....
robyseb est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/11/2011, 19h53   #6
Membre du Club
 
Homme
Channel Support Coordinator
Inscription : avril 2011
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : Algérie

Informations professionnelles :
Activité : Channel Support Coordinator
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2011
Messages : 94
Points : 40
Points : 40
Envoyer un message via MSN à lakhdar16
Merci robyseb pour votre réponse, mais est-il possible d'intégrer cette tache dans la fonction?

merci.
lakhdar16 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2011, 20h46   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Tu peux garder le principe de ton premier code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function ChangeMouseToHandBackColor(ByVal idx As Long)
Dim hCur As Long
Dim MyLabel As String
Dim i As Long
 
    For i = 34 To 39
        MyLabel = "Étiquette" & i
        With Me.Controls(MyLabel)
            If i = idx Then
               ' Pour l'étiquette ayant appelé ChangeMouseToHandBackColor
               .ForeColor = vbRed
               .BackColor = RGB(240, 213, 48)
               hCur = LoadCursor(0, IDC_HAND)
               If (hCur > 0) Then SetCursor hCur
            Else
               ' Pour les autres étiquettes
               .ForeColor = vbBlack
               .BackColor = vbWhite
            End If
        End With
    Next i
 
End Function
Dans "Sur souris déplacée" de la zone Détail :
Code :
1
2
3
Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ChangeMouseToHandBackColor 0
End Sub
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/11/2011, 00h47   #8
Membre du Club
 
Homme
Channel Support Coordinator
Inscription : avril 2011
Messages : 94
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 35
Localisation : Algérie

Informations professionnelles :
Activité : Channel Support Coordinator
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : avril 2011
Messages : 94
Points : 40
Points : 40
Envoyer un message via MSN à lakhdar16
bonsoir;

je vous remercie beaucoup pour votre réponse ça marche nickel

encore merci.
lakhdar16 est actuellement 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 16h49.


 
 
 
 
Partenaires

Hébergement Web