Mettre en majuscule

Résolu
Fahora Messages postés 949 Statut Membre -  
jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   -
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. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonjour
    Range("A1")=Ucase(Range("A1")

    Cordialement
    0
    1. Fahora Messages postés 949 Statut Membre 68
       
      Bonjour ,

      où ?
      0
    2. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443 > Fahora Messages postés 949 Statut Membre
       
      A 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
      0
    3. Fahora Messages postés 949 Statut Membre 68
       
      Maintenant il faut que je trouve le moyen de le faire que sur la cellule demandée :)
      0
    4. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443 > Fahora Messages postés 949 Statut Membre
       
      dans ce cas tu prends la formule de Mike-31 que je salue et tu modifie cette partie Range("A1")) tu choisis ta cellule
      0
    5. Fahora Messages postés 949 Statut Membre 68
       
      Malheureusement , ca ne fonctionne pas :(
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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

    0
    1. Fahora Messages postés 949 Statut Membre 68
       
      bonjour et merci Mike ,

      ca ne fonctionne pas ...
      0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    comment ça ne fonctionne pas, quelle est la cellule ou la plage que tu souhaite traitée
    0
    1. Fahora Messages postés 949 Statut Membre 68
       
      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
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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

    0
    1. Fahora Messages postés 949 Statut Membre 68
       
      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
      0
      1. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443 > Fahora Messages postés 949 Statut Membre
         
        Celle 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
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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.
    0