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 23/11/2011, 15h03   #1
Candidat au titre de Membre du Club
 
Homme Olivier
Administrateur de base de données
Inscription : août 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 21
Points : 11
Points : 11
Par défaut Fonction de mise en forme conditionnelle

Bonjour, je cherche à créer une fonction de mise en forme conditionnelle pour que ma base de donnée soit plus lisible.

Je voudrais que lorsqu'un contrôle à le focus dans un formulaire de saisie, le fond se colorie pour attirer l'attention de l'opérateur.

D'après un tutoriel j'ai mis ce code sur l'évènement activate d'un formulaire :
Code :
1
2
3
4
5
6
7
8
 
    Dim Ctrl As Control
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is TextBox Then
            Ctrl.FormatConditions.add acFieldHasFocus
            Ctrl.FormatConditions.Item(0).BackColor = 10092543
        End If
    Next Ctrl
J'ai une erreur (Le paramètre que vous avez entré pour la propriété Type est incorrect) à l'ouverture du formulaire mais ensuite ça fonctionne.

J'aimerai créer cette fonction pour pouvoir l'utiliser dans d'autres formulaires. Etant novice en VBA, je sais que je dois placer le code dans un module pour créer cette fonction mais je ne connais pas la syntaxe.

Merci d'avance
forges est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 16h46   #2
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
Bonsoir,
J'ai testé ton code (par copier/coller direct) avec ACCESS 2003 et sur un formulaire comprenant quelques rubriques de saisie, il fonctionne fort bien : la rubrique qui a le Focus se colore bien en jaune...

Si je comprends ta question, tu souhaites mettre ce code ailleurs pour ne pas avoir à le copier dans chacun de tes formulaires. Si c'est bien le cas, il te faut insérer un module (Menu "Insertion/Module")

et dans celui-ci, par exemple mettre le code suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub changeCouleurFocus(Nom_Formulaire as String)
Dim Ctrl As Control
Dim LeFormulaire as String
 
    LeFormulaire = Nom_Formulaire
 
    For Each Ctrl In Forms(LeFormulaire).Controls
        If TypeOf Ctrl Is TextBox Then
            Ctrl.FormatConditions.Add acFieldHasFocus
            Ctrl.FormatConditions.Item(0).BackColor = 10092543
        End If
    Next Ctrl
End Sub
et bien sûr dans l'événement ACTIVATE de chaque formulaire qui doit utiliser ce bout de code tu mets :
Code :
1
2
3
Private Sub Form_Activate
    changeCouleurFocus("Nom_du_Formulaire")
End Sub
En tout cas, cela fonctionne chez moi...

Michel
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 25/11/2011, 06h49   #3
Candidat au titre de Membre du Club
 
Homme Olivier
Administrateur de base de données
Inscription : août 2011
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 21
Points : 11
Points : 11
Merci beaucoup !

C'est exactement ce que je cherchais, ça fonctionne très bien

Je ne connaissais pas la syntaxe exacte à mettre dans le module, je n'étais pas loin.

Merci encore pour la rapidité et l'efficacité
forges 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 14h41.


 
 
 
 
Partenaires

Hébergement Web