Mettre en majuscule

Résolu
Bonjour à tous ,

Je cherche un moyen de tout mettre en majuscule.
Je m'explique : lors de la saisie d'une cellule , j'aimerais qu'elle se mette en majuscule lorsque je tape sur "entrée". Après multiple recherche sur le net, je ne trouve pas comment faire ça directement à la "sortie" de la cellule, tout ce que je trouve c'est au moment de changer d'onglet.(Worksheet activate)

Merci d'avance ,

Cordialement



--
Nos seules limites sont celles que nous nous imposons nous-même.
Fahora

5 réponses

  1. Re,

    le principal est que tu y sois arrivé, mais la syntaxe logique voudrait que tu écrives

    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Union(Range("K3:K14"), Range("N3:N14"))) Is Nothing Then
    Target.Value = UCase(Target)
    End If
    End Sub

    ou
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, Union([K3:K14], [N3:N14])) Is Nothing Then
    Target.Value = UCase(Target)
    End If
    End Sub

    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    1. Re,

      oui j'ai vu ta réponse plus haut colle ce code dans les propriétés de ta feuille

      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      If Not Intersect(Target, Union([K3:K4], [N3:N4])) Is Nothing Then
      Target.Value = UCase(Target)
      End If
      End Sub

      1. Merci Mike , ça fonctionne désormais avec :

        Private Sub Worksheet_Change(ByVal Target As Range)
        On Error Resume Next
        If Not Intersect(Target, Union(K3, K14, N3, N14)) Is Nothing Then
        Target.Value = UCase(Target)
        End If
        End Sub
      2. @FahoraCelle ci aussi
        Private Sub Worksheet_Change(ByVal Target As Range)
        On Error Resume Next
        If Not Intersect(Target, Union([K3,K14], [N3,N14])) Is Nothing Then
        Target.Value = UCase(Target)
        End If
        End Sub
    2. Re,

      comment ça ne fonctionne pas, quelle est la cellule ou la plage que tu souhaite traitée
      1. J'ai fait la manip que tu m'as donné , et les cellules de la colonne A ne se mettent pas en majuscule lorsque je tape quelques choses dedans.

        J'ai fait le test pour la colonne A avant de l'appliquer à mes cellules. Celles-ci seraient K3/K14/N3 et N14
    3. Bonjour,

      Exemple pour traiter la plage A1:A30
      clic droit sur l'onglet de feuille/visualiser le code, coller ce code

      Private Sub Worksheet_Change(ByVal Target As Range)
      On Error Resume Next
      If Not Intersect(Target, Range("A1:A30")) Is Nothing Then
      Target.Value = UCase(Target)
      End If
      End Sub

      1. bonjour et merci Mike ,

        ca ne fonctionne pas ...
    4. Bonjour
      Range("A1")=Ucase(Range("A1")

      Cordialement
      1. Bonjour ,

        où ?
      2. @FahoraA mettre dans ta feuille toutes tes cellules seront en majuscule

        Private Sub Worksheet_Change(ByVal Target As Range)
        'Cela évite que l'événement se répète à chaque modification du contenu de la cellule
        Application.EnableEvents = False
        'Met en majuscule
        Target = UCase(Target)
        'Rétablit la prise en charge des événements
        Application.EnableEvents = True
        End Sub
      3. Maintenant il faut que je trouve le moyen de le faire que sur la cellule demandée :)
      4. @Fahoradans ce cas tu prends la formule de Mike-31 que je salue et tu modifie cette partie Range("A1")) tu choisis ta cellule
      5. Malheureusement , ca ne fonctionne pas :(