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

Macros et VBA Excel Discussion :

Mettre en majuscule la première lettre du nom d'une nouvelle feuille excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Mettre en majuscule la première lettre du nom d'une nouvelle feuille excel
    Bonjour à tous

    Je me trouve confronté à un petit problème.
    J'ai eu beau chercher, je n'ai pas trouvé la réponse dans le forum où alors je n'ai pas cherché au bon endroit ou encore cela ne doit poser problème qu'à moi.
    Je remplis un formulaire avec des données. Pour conserver mes données, je crée une nouvelle feuille dans un classeur excel existant.
    Dans le formulaire, j'ai une textbox dans laquelle j'entre un nom. Ce nom est celui qui sera donné à la feuille excel. Mon problème c'est que le nom entré dans la textbox est en minuscule et du coup le nom de la feuille est lui aussi en minuscule. J'aimerai pouvoir mettre la première lettre du nom de la feuille en majuscule.
    mon bout de code est celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'ajout d'une nouvelle feuille
    Worksheets.Add Count:=1
    'donner un nom à la nouvelle feuille
    ActiveSheet.Name = nom
    (nom étant le nom entré dans la textbox, genre paul, pierre, etc.... Il est toujours différent)
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Characters(1).Case = wdUpperCase
    mais cela ne donne rien.
    si vous pouviez m'aider, ce n'est pas que ce soit vital, je peux le faire à la main mais je n'aime pas que la machine ait le dernier mot!!!!

    merci d'avance

    Titemireille

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Name = Ucase(Left(Textbox1,1)) & lcase(right(Textbox1, len(Textbox1)-1))

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Hello,

    Autre solution éventuelle avec l'aide de Mr Propre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Name = Application.WorksheetFunction.Proper(TextBox1)

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonsoir,

    En fait, attention à Mr Propre qui est l'emploi de la fonction Excel NOMPROPRE et dont il faut se méfier de la définition : "Met en majuscule la première lettre de chaque mot dans une chaîne textuelle et met toutes autres lettres en minuscules."

    Un petit code vallant mieux que de longs discours :
    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
    Opion Explicit
    Dim strNom As String
     
    Sub Plop1()
    strNom = "TOTO"
    ActiveSheet.Name = strNom
    End Sub
     
    Sub Plop2()
    strNom = "TOTO et tata"
    ActiveSheet.Name = strNom
    End Sub
     
    Sub MajUnMot()
    ActiveSheet.Name = Application.Proper(ActiveSheet.Name)
    End Sub
     
    Sub MajPluriMots()
    ActiveSheet.Name = UCase(Left(strNom, 1)) & Mid(LCase(strNom), 2)
    End Sub
    Pour l'exemple, titemireille, tu mets ce code dans un module de base (on raisonne sur une chaîne de caractères, la notion de textbox étant OK )

    En lançant :
    a) Plop1 puis MajUnMot et MajPluriMots à suivre
    b) Plop2 puis MajUnMot et MajPluriMots à suivre

    tu regardes le résultat, et tu en déduis les implications

    cordialement,

    Didier

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     toto = Text1.Text
      Mid(toto, 1, 1) = UCase(Mid(toto, 1, 1))
      ActiveSheet.Name  = toto

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Bonsoir à tous
    merci à Fring, Ormonth et Ucfoutu pour leur réponses. mais.......
    A la solution de Fring, réponse en désignant function "Membre de méthode ou de données introuvable"
    A la solution d'Ormouth, réponse identique à celle de Fring
    A la solution de Ucfoutu, réponse en désignant Text de Text1 "Qualificateur incorrect"

    Ce qui me pose problème c'est de sélectionner la 1ère lettre du nom inscrit dans la textbox pour la mettre en majuscule. Parceque mettre le nom entier en majuscule, ça j'y arrive!

    Ce que j'ai omis de dire mais je ne pense pas que ce soit primordial, c'est que mon formulaire est dans word.

    Si vous avez d'autres idées.

    Merci d'avance
    Titemireille

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A la solution de Ucfoutu, réponse en désignant Text de Text1 "Qualificateur incorrect"
    Montre-nous cette partie du code que tu as écrit (par copier-coller), s'il te plait ...

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ce que j'ai omis de dire mais je ne pense pas que ce soit primordial, c'est que mon formulaire est dans word
    ...tu as raison c'est juste un détail insignifiant

    Si jusque là tu y arrives sans problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'ajout d'une nouvelle feuille
    Worksheets.Add Count:=1
    'donner un nom à la nouvelle feuille
    ActiveSheet.Name = nom
    Il suffit de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'ajout d'une nouvelle feuille
    Worksheets.Add Count:=1
    'donner un nom à la nouvelle feuille
    ActiveSheet.Name = Ucase(Mid(nom, 1, 1)) & Mid(nom, 2)
     
    'ou
    'ActiveSheet.Name = Application.WorksheetFunction.Proper(nom)

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut

    Merci Fring, ca fonctionne.
    Je ne connaissais pas la fonction Mid, j'aurai encore appris quelquechose.
    Merci à tous
    A plus
    titemireille

  10. #10
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonsoir,

    titemireille, à défaut d'être explicite, expliques moi comment ce code génère une erreur ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MajPluriMots()
    ActiveSheet.Name = UCase(Left(strNom, 1)) & Mid(LCase(strNom), 2)
    End Sub
    Et si l'utilisateur tapes tout en majuscule, tu fais comment ?

    bon courage,

    Didier

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Bonsoir Didier,
    pour répondre à ta question, enfin à une partie, l'utilisateur c'est que moi! et dans le formulaire, j'ai mis des "bulles" pour indiquer comment taper le texte.
    Enfin demain, j'essaierai ce que tu m'as proposé. Si j'ai bien compris, cela doit arriver au même résultat que je tape en minuscule ou en majuscule?
    Allez bonne nuit
    Titemireille

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

Discussions similaires

  1. mettre en majuscule la premiere lettre d'un mot
    Par teophane dans le forum Requêtes
    Réponses: 5
    Dernier message: 18/11/2011, 13h54
  2. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  3. Mettre en majuscule la première lettre d'un mot
    Par bobosh dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/09/2008, 07h55
  4. Mettre en majuscule chaque premiere lettre
    Par andreditdd dans le forum Delphi
    Réponses: 12
    Dernier message: 02/04/2007, 14h12
  5. [RegEx] Mettre en majuscules les premières lettres accentuées
    Par Bibicmoi dans le forum Langage
    Réponses: 8
    Dernier message: 15/05/2006, 19h02

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