XL 2019 Changer la casse automatiquement d'un mot dans une cellule

Patrick.75019

XLDnaute Occasionnel
Bonjour à tous
J'aurai besoin
que dans une plage de cellules par exemple D5: D10
je voudrais que la première lettre lorsque j'écris dans cette cellule soit toujours soit automatiquement une majuscule
et les autres des minuscules

merci a l'avance de votre aide
 

Pièces jointes

  • Changer la casse automatiquement d'un mot dans une cellule.zip
    6.6 KB · Affichages: 7

Patrick.75019

XLDnaute Occasionnel
merci Riton
ton exemple fonctionne hyper bien , par contre moi j'ai essayé de l'adapter sur mon tableau et ca ne va plus , je ne comprends pas ou j'ai cafouillé ci joint mon tableau pour que tu puisses jeter un oeil
merci encore
 

Pièces jointes

  • Tableau casse.zip
    9.6 KB · Affichages: 8

Farouk

XLDnaute Nouveau
Bonjour,

Voici un bout de code VBA à mettre dans le code de la feuille que tu utilises pour tes données à mettre en majuscule :

VB:
Option Explicit

Public lLigSaisie As Long
Public sValModif As String
public iColSaisie as integer
Const iColASaisir As Integer = 3


Private Sub Worksheet_Change(ByVal Target As Range)
      
    lLigSaisie = Target.Row
    iColSaisie = CInt(Target.Column)
  
    sValModif = UCase(Cells(lLigSaisie, iColSaisie))
  
    If iColSaisie = iColASaisir  And lLigSaisie > 2 And Not sValModif = "" Then
  
        Cells(lLigSaisie, iColASaisir) = UCase(Cells(lLigSaisie, iColASaisir))
  
    End If

End Sub
Dans cette version tout le mot est en majuscule.
la valeur de la constante "iColASaisir" est à modifier si ce n'est pas la colonne "C" (=3)

Bon courage

Farouk
 
Dernière édition:

Farouk

XLDnaute Nouveau
Bonjour,

Voici un bout de code VBA à mettre dans le code de la feuille que tu utilises pour tes données à mettre en majuscule :

VB:
Public lLigSaisie As Long
Const iColASaisir As Integer = 3
Public iColSaisie As Integer
Public sValModif As String
Public sLettreUne As String

Private Sub Worksheet_Change(ByVal Target As Range)
       
    lLigSaisie = Target.Row
    iColSaisie = CInt(Target.Column)
   
    sValModif = Cells(lLigSaisie, iColSaisie)
       
    If iColSaisie = 3 And lLigSaisie > 2 And Not sValModif = "" Then
        sLettreUne = UCase(Left$(sValModif, 1))
        sValModif = sLettreUne & Mid$(sValModif, 2)
        Cells(lLigSaisie, iColSaisie) = sValModif
   
    End If

End Sub

Dans cette version la premère lettre du mot est en majuscule.
la valeur de la constante "iColASaisir" est à modifier si ce n'est pas la colonne "C" (=3)

Bien sur dans ces 2 versions il est supposé, d'après ce que tu as décrit, que le mot à modifier est en 1ère position. Après ce sera à toi à adapter.....

Bon courage

Farouk
 

Patrick.75019

XLDnaute Occasionnel
Bonjour,

Voici un bout de code VBA à mettre dans le code de la feuille que tu utilises pour tes données à mettre en majuscule :

VB:
Option Explicit

Public lLigSaisie As Long
Public sValModif As String
public iColSaisie as integer
Const iColASaisir As Integer = 3


Private Sub Worksheet_Change(ByVal Target As Range)
     
    lLigSaisie = Target.Row
    iColSaisie = CInt(Target.Column)
 
    sValModif = UCase(Cells(lLigSaisie, iColSaisie))
 
    If iColSaisie = iColASaisir  And lLigSaisie > 2 And Not sValModif = "" Then
 
        Cells(lLigSaisie, iColASaisir) = UCase(Cells(lLigSaisie, iColASaisir))
 
    End If

End Sub
Dans cette version tout le mot est en majuscule.
la valeur de la constante "iColASaisir" est à modifier si ce n'est pas la colonne "C" (=3)

Bon courage

Farouk
 

Patrick.75019

XLDnaute Occasionnel
C'est presque ce que je voulais , hormis que je souhaitais que seule la premiere lettre soit en majuscule et les autres en
Bonjour,

Voici un bout de code VBA à mettre dans le code de la feuille que tu utilises pour tes données à mettre en majuscule :

VB:
Option Explicit

Public lLigSaisie As Long
Public sValModif As String
public iColSaisie as integer
Const iColASaisir As Integer = 3


Private Sub Worksheet_Change(ByVal Target As Range)
     
    lLigSaisie = Target.Row
    iColSaisie = CInt(Target.Column)
 
    sValModif = UCase(Cells(lLigSaisie, iColSaisie))
 
    If iColSaisie = iColASaisir  And lLigSaisie > 2 And Not sValModif = "" Then
 
        Cells(lLigSaisie, iColASaisir) = UCase(Cells(lLigSaisie, iColASaisir))
 
    End If

End Sub
Dans cette version tout le mot est en majuscule.
la valeur de la constante "iColASaisir" est à modifier si ce n'est pas la colonne "C" (=3)

Bon courage

Farouk
 

Farouk

XLDnaute Nouveau
Merci de ton code ,ca fonctionne bien mais j'aurais aimé que seule la première lettre soit en Majuscule
merci encore
Bonjour,
Je t'ai fait 2 réponses
La première passe tout le mot en majuscule
La deuxième passe la première lettre du mot en majuscule

Nota : en relisant ce que j'ai envoyé je pense à un problème sur le site, car en fait je vois qu'il 4 envois!!!!
Seules les 2 ères réponses comptent.
Ne pas tenir compte des 3ème et 4ème.

Farouk
 
Dernière édition:

Patrick.75019

XLDnaute Occasionnel
Merci , tu as raison le site doit rencontrer un probleme
BREF/
La premiere lettre se change en majuscule , et les autres en minuscule_ Jusque la tout va bien

Mais il y a un probleme
J'ecris Sms : 28/10/2019 dans une cellule c'est parfait
mais lorsque je veux ecrire dans une autre cellule la meme chose (Sms:)avec une date differente Soit Sms :29/10/2018
ca fait comme un copier coller de la premiere cellule Sms: 28/10/2019
 

Patrick.75019

XLDnaute Occasionnel
Merci , tu as raison le site doit rencontrer un probleme
BREF/
La premiere lettre se change en majuscule , et les autres en minuscule_ Jusque la tout va bien

Mais il y a un probleme
J'ecris Sms : 28/10/2019 dans une cellule c'est parfait
mais lorsque je veux ecrire dans une autre cellule la meme chose (Sms )avec une date differente Soit Sms :29/10/2018
ca fait comme un copier coller de la premiere cellule Sms: 28/10/2019
 

Patrick.75019

XLDnaute Occasionnel
Bon , j'ai teste et sur ton fichier ca fonctionne nickel , moi je dois avoir un conflit avec une macro ou je ne sais
et si je fais une copie d'une feuille de mon application pour la mettre sur le forum ca fonctionne (la copie.)
je regarderais ca demain matin
merci de ton aide
bonne fin de soiree
 

Discussions similaires

Réponses
9
Affichages
459

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16