Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Code Excel pour mettre la première lettre en majuscule

Yonissart

XLDnaute Nouveau
Bonsoir
Je cherche un code Excel pour mettre la première lettre de chaque mot en majuscule. j'en avais trouvé un super, mais il y a des mots qui doivent rester entièrement en majuscule, et ça ne suit pas, ça met meme tout en minuscule
Existe t-il un code Excel pour réussir ceci ?
Merci beaucoup
Cordialement
 
Solution
Bonsoir,

A tester ce code que j'ai sous le coude, provient d'un ancien fichier "le mettre dans la feuille même"

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, [A1:Z100]) Is Nothing Then
        Dim cell As Range
        For Each cell In Target
            cell.Value = CapitaliserPremiereLettre(cell.Value)
        Next cell
    End If
    Application.EnableEvents = True
End Sub

Function CapitaliserPremiereLettre(ByVal texte As String) As String
    Dim mots() As String
    Dim mot As Variant
    Dim i As Integer

    mots = Split(texte, " ")

    For i = LBound(mots) To UBound(mots)
        If mots(i) <> "" Then
            ' Vérifier si le premier caractère est...

jurassic pork

XLDnaute Occasionnel
C'est vraiment bizarre. Je ne comprend pas. Ou bien O365 considère d'office (jeu de mot) qu'une fonction pourrait envoyer une matrice ? Mais ce serait étrange. Là je sèche
Voici ce que Léo l'I.A de Brave me dit au sujet du problème rencontré :

Formules dans un classeur​

Une ou plusieurs cellules de ce classeur contiennent une formule qui s’est propagée ou qui est susceptible de se propager. Cela signifie que la formule a été entrée dans une cellule et qu’elle a automatiquement été étendue à d’autres cellules adjacentes.

Comportement des formules propagées​

Lorsque vous appuyez sur Entrée pour confirmer votre formule, Excel dimensionne dynamiquement la plage de sortie pour vous et place les résultats dans chaque cellule de cette plage. Si vous écrivez une formule de tableau dynamique pour agir sur une liste de données, il peut être utile de la placer dans un tableau Excel, puis d’utiliser des références structurées pour faire référence aux données.

Caractéristiques des formules propagées​

  • Les formules propagées ne sont pas prises en charge dans les tables Excel elles-mêmes.
  • Les formules matricielles plus anciennes, appelées formules de tableau héritées, retournent toujours un résultat de taille fixe.
  • Les formules qui peuvent retourner des tableaux de taille variable sont appelées formules de tableau dynamique.
  • Les formules qui retournent actuellement des tableaux qui sont correctement propagées peuvent être appelées formules de tableau propagées.

Gestion des formules propagées​

  • Pour afficher les relations entre formules et cellules, utilisez les commandes Repérer les antécédents et Repérer les dépendants.
  • Pour supprimer les flèches de suivi, utilisez la commande Supprimer les flèches.
  • Pour identifier le niveau suivant de cellules qui dépendent de la cellule active, cliquez à nouveau sur Trace Dependents.
 

jurassic pork

XLDnaute Occasionnel
Ben moi je viens de faire un essai dans ton classeur sous Excel 2021 . j'ai remplacé ta fonction personnalisée dans les formules par la fonction MAJUSCULE : je n'ai plus le problème. C'est la fonction personnalisée qui pose problème.
[EDIT] Et même avec une fonction personnalisée toute simple :
VB:
Function Maj(texte) As String
Maj = UCase(texte)
End Function
 
Dernière édition:

job75

XLDnaute Barbatruc
J'en remets, ceci est un chouia plus rapide que #15 (5%) :
VB:
Function PremLettreMaj$(x$)
Dim i&
x = " " & x: i = 1
Do
    Mid(x, i, 2) = UCase(Mid(x, i, 2))
    i = InStr(i + 1, x, " ")
Loop While i
PremLettreMaj = LTrim(x)
End Function
 

Pièces jointes

  • Yonissart-PrelLettreMaj-v2.xlsm
    17 KB · Affichages: 3

Discussions similaires

  • Question
XL pour MAC mise en forme
Réponses
2
Affichages
488
Réponses
9
Affichages
679
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…