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 :

Ajouter une ligne automatiquement sous toutes les zones de texte


Sujet :

IHM

  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 139
    Points
    139
    Par défaut Ajouter une ligne automatiquement sous toutes les zones de texte
    Bonjour,

    Je cherche, afin d'éviter de reprendre mes formulaires "un par un", le moyen de modifier/ajouter par le Code à tous les champs "zone de texte" :

    - que le fond couleur soit transparent
    - qu'un trait soit ajouté 1mm, ou 2 mm, sous le champ texte un trait de "couleur grise" qui, lorsque le focus de la zone de texte est pris, se colore en rouge (un peu à la manière du "material design")

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Une partie de la solution: ouvre chaque formulaire en mode création et si contrôle de type textbox ou combobox ajoute un format conditionnel qui affiche le champ actif avec la couleur de fond choisie (ici jaune). Ajouté aussi l'instruction pour ajouter un trait, mais pas de solution pour qu'il change de couleur si le champ est actif. Le format conditionnel m'apparait vraiment bien plus simple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Option Compare Database
    Option Explicit
     
    '--- adapté de
    '--- https://stackoverflow.com/questions/34901810/microsoft-access-loop-through-all-forms-and-controls-on-each-form
     
    Public Sub GetForms()
        Dim oForm As Form
        Dim nItem As Long
        Dim bIsLoaded As Boolean
        For nItem = 0 To CurrentProject.AllForms.Count - 1
            bIsLoaded = CurrentProject.AllForms(nItem).IsLoaded
            If Not bIsLoaded Then
                On Error Resume Next
                DoCmd.OpenForm CurrentProject.AllForms(nItem).Name, acDesign
            End If
            Set oForm = Forms(CurrentProject.AllForms(nItem).Name)
            GetControls oForm
            If Not bIsLoaded Then
                On Error Resume Next
                DoCmd.Close acForm, oForm.Name
            End If
        Next
    End Sub
     
    Sub GetControls(ByVal oForm As Form)
        Dim oCtrl As Control
        Dim cCtrlType, cCtrlCaption As String
        Debug.Print "----- "; oForm.Name
        For Each oCtrl In oForm.Controls
            If oCtrl.ControlType = acSubform Then Call GetControls(oCtrl.Form)
            Select Case oCtrl.ControlType
                Case acLabel
                    cCtrlType = "label"
                    cCtrlCaption = oCtrl.Caption
                Case acCommandButton
                    cCtrlType = "button"
                    cCtrlCaption = oCtrl.Caption
                Case acTextBox
                    cCtrlType = "textbox"
                    'cCtrlCaption = oCtrl.Properties("DataSheetCaption")
                    cCtrlCaption = "---"
                    '--- ajout d'un trait sous le textbox
                    '--- 1 cm = 567 twips  => 1 mm = 57 twips
                    'Debug.Print oCtrl.Left, oCtrl.Top, oCtrl.Width, oCtrl.Height
                    'CreateControl oForm.Name, acLine, acDetail, , , oCtrl.Left, oCtrl.Top + oCtrl.Height + 57, oCtrl.Width, 0
                    '--- style fond + format conditionnel si actif
                    oCtrl.BackStyle = 0                         '--- 0=transparent, 1=standard
                    If oCtrl.FormatConditions.Count > 0 Then
                        oCtrl.FormatConditions.Item(0).Delete   '--- supprime le 1er format conditionnel
                    End If
                    oCtrl.FormatConditions.Add acFieldHasFocus
                    oCtrl.FormatConditions.Item(0).BackColor = vbYellow
                Case acComboBox
                    cCtrlType = "ComboBox"
                    cCtrlCaption = "---"
                    '--- style fond + format conditionnel si actif
                    oCtrl.BackStyle = 0                         '--- 0=transparent, 1=standard
                    If oCtrl.FormatConditions.Count > 0 Then
                        oCtrl.FormatConditions.Item(0).Delete   '--- supprime le 1er format conditionnel
                    End If
                    oCtrl.FormatConditions.Add acFieldHasFocus
                    oCtrl.FormatConditions.Item(0).BackColor = vbYellow
                Case Else
                    cCtrlType = "Type " & oCtrl.ControlType
                    cCtrlCaption = "---"
            End Select
            Debug.Print oForm.Name, oCtrl.Name, cCtrlType, cCtrlCaption
        Next
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 139
    Points
    139
    Par défaut
    Merci beaucoup pour la bdd exemple, je vais regarder cela avec intérêt.

Discussions similaires

  1. [XL-2007] ajouter une ligne automatiquement si tel cellule est remplie
    Par croky23 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 23/01/2011, 23h19
  2. Réponses: 16
    Dernier message: 31/08/2009, 10h59
  3. Comment ajouter une ligne à un sous-formulaire?
    Par Leila59 dans le forum IHM
    Réponses: 14
    Dernier message: 17/05/2008, 14h08
  4. Réponses: 2
    Dernier message: 07/02/2007, 09h16
  5. [javadoc] - ajouter une entête javadoc a tout les fichiers
    Par spidetra dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 15/09/2006, 10h01

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