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 :

[Formulaires][03]Fonction et liste évènements


Sujet :

IHM

  1. #1
    seb92400
    Invité(e)
    Par défaut [Formulaires][03]Fonction et liste évènements
    Bonjour,

    J'ai inclus le nom d'une fonction directement dans la liste d'évènements...

    Voici la fonction :
    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
    Public Function fctNomPropre(strTexte As String) As String
     
        Dim nbCar As Integer
     
        strTexte = Trim$(strTexte)
        nbCar = Len(strTexte)
        fctNomPropre = UCase$(Left(strTexte, 1))
     
        If nbCar > 1 Then
            For nbCar = 2 To Len(strTexte)
                If (Mid$(strTexte, nbCar - 1, 1) = " ") _
                Or (Mid$(strTexte, nbCar - 1, 1) = "-") _
                Or (Mid$(strTexte, nbCar - 1, 1) = ".") _
                Or (Mid$(strTexte, nbCar - 1, 1) = ",") _
                Or (Mid$(strTexte, nbCar - 1, 1) = "'") Then
                    fctNomPropre = fctNomPropre & UCase$(Mid$(strTexte, nbCar, 1))
                Else
                    fctNomPropre = fctNomPropre & LCase$(Mid$(strTexte, nbCar, 1))
                End If
            Next
        End If
     
    End Function
    Dans la liste évènements (après MAJ), j'ai inscrit :
    =fctNomPropre([TexteEssai])
    Mais je n'obtiens aucun résultat... J'ai testé la fonction en VBA, aucun souci...

    Ma question, c'est donc : Doit-on obligatoirement passer par VBA pour exécuter une fonction ou ai-je oublié qqch dans l'appel de cette dernière dans les évènements ??

    PS (c'est juste pour limiter un peu le code que je passe par les appels évènements...)

    Merci d'avance...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu as mis sur l'évènement AfterUpdate de ton contrôle nommé TexteEssai, essaye de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.TexteEssai.value = fctNomPropre(me.TexteEssai.value)
    Starec

  3. #3
    seb92400
    Invité(e)
    Par défaut
    Hello,

    En fait, je me suis mal fait comprendre... Ca que tu me donnes, c'est la version VBA qui fonctionne très bien...

    Mais comme je vais devoir inclure cette fonction sur pas mal de champs, je voulais directement la rentrer dans la liste des évènements :

    Bouton droit sur contrôle / Propriétés / Onglet Evènements / Après MAJ (2e ligne)...

    Tout ça dans le souci de limiter le nombre de ligne de code et d'avoir un code plus clair...

    J'ai testé avec une fonction qui m'envoi le curseur en début de ligne (dans le cadre d'un masque par exemple), ça fonctionne parfaitement. Mais dans ce cas là il n'y a pas de retour de valeur.
    Je me demandais simplement si ça fonctionnait aussi lorsque la fonction retourne une valeur, ce qui est le cas pour la fonction de conversion...

    Mais bon, fainéant comme je suis, je ne reculerai pas devant quelques lignes de code supplémentaires s'il le faut !!

Discussions similaires

  1. Rafraichir un formulaire en fonction d'un choix dans une liste déroulante
    Par talondachil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 23h17
  2. Réponses: 17
    Dernier message: 23/05/2007, 14h57
  3. Réponses: 3
    Dernier message: 10/05/2007, 13h21
  4. Réponses: 1
    Dernier message: 04/05/2007, 12h15
  5. Voir la liste des fonctions attaché à un évènement
    Par CAML dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2006, 21h32

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