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

VBA Access Discussion :

[VBA]Conversion de la 1ere lettre en majuscule


Sujet :

VBA Access

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut [VBA]Conversion de la 1ere lettre en majuscule
    bonjour

    apres avoir réussi a convertir les chiffres en lettres, avec bien sur votre précieuse aide, je voudrais que la 1ere lettre de mon champs soit automatiquement en majuscule.

    j'ai chercher sur le forum mais ce que j'ai trouer ne correspond pas a mon besoin, parce que au fait il ne s'agit pas d'un champ mais d'une zone de texte que j'ai intégré dans mon état pour qui traduise les chiffres en lettres.


    merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Bonjour,

    Citation Envoyé par azde7015
    bonjour

    apres avoir réussi a convertir les chiffres en lettres, avec bien sur votre précieuse aide, je voudrais que la 1ere lettre de mon champs soit automatiquement en majuscule.

    j'ai chercher sur le forum mais ce que j'ai trouer ne correspond pas a mon besoin, parce que au fait il ne s'agit pas d'un champ mais d'une zone de texte que j'ai intégré dans mon état pour qui traduise les chiffres en lettres.


    merci d'avance
    Supposons qu'une chaîne est contenue dans une variable xStr. Le code suivant permet de mettre en majuscule le premier caractère de cette chaîne en majuscule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim xStr As String
    xStr = "ma chaîne"
    xStr = UCase(Left(xStr, 1)) & Mid(xStr, 2)
    Tu changes la variable par ton champ ou ton contrôle.

    Bon courage et @+

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    re bonjour
    en intergrant le code il me demande NOM? es ce le nom du champs ou du code qu'il y a dans la zone de texte.

    merci

  4. #4
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Petit exemple avec ta fonction de conversion....
    Le champ "Texte0" contient la valeur en chiffre.
    Le champ "Texte2" contient la conversion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Texte2.Value = "Le montant est de " & UCase(Left(Nb2Mot$(Texte0) , 1)) _ 
    & Mid(Nb2Mot$(Texte0), 2)
    Bonne continuation...

  5. #5
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Re,
    Citation Envoyé par azde7015
    re bonjour
    en intergrant le code il me demande NOM? es ce le nom du champs ou du code qu'il y a dans la zone de texte.

    merci
    Le code que je t'ai montré ne sert qu'à expliquer le principe:
    Left(xStr, 1) extrait le permier caractère de la chaîne
    UCase(Left(xStr, 1)) permet de mettre au majuscule ce premier caractère
    Mid(xStr, 2) extrait tous les caractères à partir de la deuxième position.

    Maintenant à toi de l'adapter. Mais peux-tu nous dire comment l'as tu fait pour essayer de savoir pourquoi il demande NOM?

    Bon courage et @+

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    merci de ta réponse FreeAccess mais malheureusement cela ne marche toujours pas, j'ai pourtant remplacer les valeurs mais rien ???

    que faire ?

  7. #7
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Je pense que pour t'aider correctement, tu devrais répondre à la question de Mahefasoa...
    ..Mais peux-tu nous dire comment l'as tu fait pour essayer de savoir pourquoi il demande NOM?

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    oui je pense que tu as raison, j'ai mis le code en ouvrant une fenetre MICROSOFT VISUAL BASIC? ou peut etre je devais tout simplement le mettre directement dans la zone de texte ???

    merci

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    pas de solution a mon problème ?

  10. #10
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Essai se code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub txtMemo_KeyPress(KeyAscii As Integer)
        If KeyAscii > 64 Then
           'on vérifie si on se trouve au le premier caractère
            If txtMemo.Selstart = 0 Then
                KeyAscii = Asc(UCase(Chr(KeyAscii)))
            Else
                KeyAscii = Asc(LCase(Chr(KeyAscii)))
            End If
        End If
    End Sub

  11. #11
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    merci je vien de testé rien, il s'agit d'une zone de texte qui traduit les chiffres en lettre et qui est lier a un module

    cela peut etre vous eclairera

  12. #12
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Re,
    Citation Envoyé par azde7015
    oui je pense que tu as raison, j'ai mis le code en ouvrant une fenetre MICROSOFT VISUAL BASIC? ou peut etre je devais tout simplement le mettre directement dans la zone de texte ???

    merci
    Tout ceci n'est pas très explicite! Certes, tu l'as mis dans une fenêtre MICROSOFT VISUAL BASIC, mais associé à quel événement? Quel est le code que tu as écrit?
    Bien sûr, tu peux le mettre directement dans la "zone de texte" ... ou je voulais dire que tu peux le mettre dans la propriété Source contrôle de la zone de texte si cette dernière n'est associée à aucun champ d'une source de données (table ou requête) quelconque!
    Donc supposons que si le résultat de la conversion se trouve dans la zone de texte (c'est un contrôle) nommée ZT1 alors dans la zone de texte où tu veux placer le résultat (avec première lettre en maj), il faut écrire ceci dans la propriété Source contrôle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =UCase(Left([ZT1], 1)) & Mid([ZT1], 2)
    La j'ai fait dans le plus simple!
    Pour que l'on puisse t'aider au mieux, dis nous en plus!

    Bon courage et @+

  13. #13
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    certes tu a raison mais en ce moment la source de contrôle est =Nb2Mot([Montant_])

    ce qui relie cette zone de texte a mon champs c a dire la ou il y a le chiffre, bien sur via le module qui s'occupe de la conversion.

    il n'y pas un travail a faire sur le module directement, je sais que j'ai changer l'intitulé de la monnaie directement a partir du module

    merci encore

  14. #14
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Cela n'aide pas vraiment.....
    Par contre pour répondre directement à ta question
    d'une zone de texte que j'ai intégré dans mon état pour qui traduise les chiffres en lettres
    Sur quoi est basé ton état
    une table directe..
    une requête...

    Exemple pour une requête:
    On va se servir de la fonction "Nb2Mot$" directement dans celle-ci pour convertir des montants en lettres. Ici le champ "valeur" représente le champ dans lequel sont 'sauvegardé' des montant en chiffre:
    -1) Tu crée une requête basée sur ta table (Exemple T_Valeur)
    -2) Dans le QBE tu y mets tous les champs dont tu as besoin pour ton état.
    -3) Dans le QBE, tu crée un nouveau champ "ChiffreEnLettre" qui va te convertir directement tes chiffres en lettres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ChifffeEnLettre: "Le montant est de " & Majuscule(Gauche(Nb2Mot$ _
    ([valeur]);1)) & ExtracChaîne(Nb2Mot$([valeur]);2)
    Maintenant, il ne reste plus qu'à créer ton état basé sur cette requête.

  15. #15
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    l'état est fait sur la base d'une requête

  16. #16
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    En lisant bien FreeAccess, tu aurais pu comprendre que dans ta zone de texte, tu pourrais écrire ceci dans la propriété Source contrôle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =Majuscule(Gauche(Nb2Mot([Montant_]);1)) & ExtracChaîne(Nb2Mot([Montant_]);2)
    Et cela ne donne rien?

    Bon courage et @+

  17. #17
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Et bien voilà.....
    Si ton état est basé sur une requête, utilise la réponse fournie...
    Maintenant, dans ton état, tu pourras te servir du champ "valeur" pour récupérer le montant en chiffre et.....le champ "ChiffreEnLettre" pour sa valeur en lettre.

    Maintenant, la solution de Mahefasoa est également applicable à ton cas.
    Il suffit simplement que ton champ qui va servir à l'affichage de ton montant en lettre soit "indépendant"....et dans sa propriété 'Source contrôle' tu tape:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ="Le montant est de " & Majuscule(Gauche(Nb2Mot$([valeur]);1)) _
     & ExtracChaîne(Nb2Mot$([valeur]);2)
    Ici 'valeur' représente le nom du champ contenant ton montant en chiffre.

  18. #18
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Eh oui, rien de plus facile et toc!

    valeur à remplacer par Montant_. Tu suis?

  19. #19
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 186
    Points : 79
    Points
    79
    Par défaut
    ok ca marche merci les gars c gentil, hier apres une dure journée je voyais flou , en tout cas merci pour votre patience.

    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] 1ere lettre en majuscule
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2012, 11h56
  2. [XL-2003] Imposer 1ere lettre majuscule dans cellule via VBA
    Par medino55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/07/2011, 03h34
  3. [XL-2003] Trouver la 1ere lettre majuscule dans une chaine de caractères
    Par ptitrault dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 05/10/2009, 10h59
  4. conversion de lettre en majuscule
    Par monphp dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/07/2007, 12h20
  5. 1ere lettre en majuscule et le reste en minuscule
    Par pascale86 dans le forum Langage
    Réponses: 3
    Dernier message: 23/10/2006, 15h53

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