Premiere Lettre en Majuscule [Résolu/Fermé]

Signaler
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020
-
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020
-
Bonjour,



Encore un petit souci

J'arrive pas a trouver comment mettre en Majuscule la premiere lettre de chaque mot seulement sur une colonne (colonne F)
le range serait f2-f1000
j'aimerais que ce soit une macro de preference

soir = Soir
bONJOUR = Bonjour
BONJOUR = Bonjour
sous-titres = Sous-Titres

merci
A voir également:

5 réponses

Messages postés
8534
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 avril 2021
1 644
Bonjour,

Avec une simple formule :
=NOMPROPRE(MINUSCULE(F2))

Et avec une macro c'est pareil, y a juste à traduire. (l'enregistreur de macro est mon ami !)

Cordialement
Patrice
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

Merci pour ta réponse rapide.
Ce que je voulais dire, c'est que cette fonction se fasse automatiquement, sans rien faire
Est-ce possible que lorsque je copie du texte qui vient d'ailleurs, et que je le colle dans une cellule, la correction se fasse automatiquement

Je disais par une macro, mais je pense que par VBA serait préférable

merci

Martin
Messages postés
8534
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 avril 2021
1 644
Sous Excel, les macros c'est forcement du VBA !

Pour que ça se face tout seul, il faut utiliser l'évènement Change de la feuille concernée.
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

Merci

je suis assez novice coté Excel
Alors de quelle facon ou comment le faire`
Martin
Messages postés
8534
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 avril 2021
1 644
Si t'es novice, avant de te lancer dans la programmation VBA, apprends à te servir des possibilités d'excel.
La formule de je t'ai donné fera l'affaire.
Messages postés
8534
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 avril 2021
1 644
PS: Un excellent cours VBA pour débutants (et plus si affinités) :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Messages postés
53582
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
8 avril 2021
15 628
Autre approche du problème :
Copier-coller la colonne F dans Word
Appliquer l'outil Police/Modifier la casse pour "Première lettre en majuscule"
Copier-coller la liste ainsi modifiée dans Excel.
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

Merci, mais j'aimerais une formule ou une MFC ou en VBA, qui se ferait automatiquement.
Sans passer par autre chose
Messages postés
7326
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
622
Bonjour,

En vba se déclenche au double clic:

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Value = "" Then Exit Sub
Target.Value = Application.WorksheetFunction.Proper(Target.Value) '1ere lettre majuscule
'Target.Value = LCase(Target.Value) 'minuscule
'Target.Value = UCase(Target.Value) 'majuscule
End Sub


Se mettre sur la feuille concernée faire Alt F11 et coller ce code

et pour adapter à une colonne voir ce site pour les boucles

https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/


Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

Merci pour l'info.
J'ai bien regarder mais je ne vois pas comment intégrer a ton vba, une colonne par exemple F

merci
Messages postés
7326
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
622
Comme ceci, a adapter à ta colonne et ta feuille:

Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim DLig As Long 'dernière ligne
DLig = Range("A1").End(xlDown).Row 'a adapter
    Set FL1 = Worksheets("Feuil1") 'a adapter
    NoCol = 1 'lecture de la colonne A a adapter
    For NoLig = 1 To DLig
        Var = FL1.Cells(NoLig, NoCol)
        FL1.Cells(NoLig, NoCol) = Application.WorksheetFunction.Proper(FL1.Cells(NoLig, NoCol)) '1ère lettre majuscule
     Next
    Set FL1 = Nothing
End Sub


Tu mets ce code dans un module et ensuite tu suis l'explication donnée sur ce site:

https://www.excel-plus.fr/vba/demvba/affecter-une-macro-a-un-bouton/

Voilà, c'est simple!


@+ Le Pivert
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

merci beaucoup
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

Ca marche parfaitement
Mais J'aimerais que quelques abbréviations ne soient pas converti

exemple

CCBN devient Ccbn j'aimerais garder CCBN
SAAQ devient Saaq j'aimerais garder SAAQ
SDC deveint Sdc j'aimerais garder SDC
etc

(Pierre) devient (pierre)
(On Répare) devient (on Répare)

Comment garder la premiere lettre en majuscule apres une parenthese



Comment ajouter a ce VBA ces exceptions

merci

Martin
Messages postés
12984
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
8 avril 2021
2 165
Bonjour

Dans une colonne de ta feuille vide (par exemple en colonne L) tu listes les abréviations à conserver en majuscules puis dans la macro tu remplaces la ligne
FL1.Cells(NoLig, NoCol) = Application.WorksheetFunction.Proper(FL1.Cells(NoLig, NoCol)) '1ère lettre majuscule
par celle ci:
If Application.WorksheetFunction.CountIf(Range("L:L"), Var) = 0 Then FL1.Cells(NoLig, NoCol) = Application.WorksheetFunction.Proper(Var) '1ère lettre majuscule

Cdlmnt
Via
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

J'ai bien mis les abbréviations dans la colonne L
CCBN
SAAQ
SDC
SAQ

mais en Colonne F , ces ABR. dans le texte ne sont pas corrigé

je viens de voir que si je corrige le texte en F, ca fonctionne

merci
Messages postés
12984
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
8 avril 2021
2 165
La macro originelle corrige en colonne A
NoCol = 1 'lecture de la colonne A a adapter
On t'a bien dit de l'adapter à ton fichier si nécessaire
ce qui pour la colonne F donnerait NoCol = 6

Cdlmnt
Messages postés
113
Date d'inscription
vendredi 19 janvier 2018
Statut
Membre
Dernière intervention
16 février 2020

J'ai bien NoCol = 6

ca fonctionne merci