Résolu Forcer la saisie en majuscules sur feuille Excel 2007

  • Auteur de la discussion duncan2idaho
  • Date de début

zeb

Modérateur
Pas de Hop avec le nouveau code ?

Ajoute ceci à la fin du Select :
Code:
...
    Case 14
        ...
    Case Else
        MsgBox "Pas hop. On est sur la colonne " & Target.Column.
End Select
Relance le tout.

---------------------------------------------------

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub ' // <-- pour éviter que ça coince si on sélectionne plusieurs cellules
Mais n'importe quoi, quoi !

Si plusieurs cellules sont à changer, il faut toutes les changer :spamafote:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cellule As Range
    If Target.Count > 1 Then 
      For Each Cellule In Target
        Worksheet_Change Cellule
      Next
    End If
    ...
 

duncan2idaho

Habitué
J'avais pas essayé le nouveau, tu vas un peu vite pour moi lol

J'essaie, merci!
 

duncan2idaho

Habitué
Avec ce code ça marche, j'ai les "Eh hop" et les infos qui se mettent en majsucule!

Code:
   1. Private Sub Worksheet_Change(ByVal Target As Range)
   2.   If Target.Count > 1 Then Exit Sub
   3.   Select Case Target.Column
   4.     Case 3 To 13, 15, 27, 28, 32, 33, 36, 37, 39
   5.       If Target.Value <> UCase$(Target.Value) Then
   6.         Target.Value = UCase$(Target.Value)
   7.         Msgbox "Et hop, un UCASE sur la colonne " & Target.Column
   8.       End If
   9.     Case 14
  10.       If Target.Value <> StrConv(Target.Value, vbProperCase) Then
  11.         Target.Value = StrConv(Target.Value, vbProperCase)
  12.         Msgbox "Et hop, un STRCONV sur la colonne " & Target.Column
  13.       End If
  14.   End Select
  15. End Sub
 

zeb

Modérateur
Ben t'as plus qu'à changer le code pour le Target.Count > 1 ( cf. mon dernier message), à virer toutes les MsgBox inutiles, puis à mettre en résolu ce topic.
 

duncan2idaho

Habitué
Ok - ça t'embêterai de me mettre le code tout nickel, que je copie/colle. J'ai enlever les MsgBox et comme je m'y connais pas bien, ça coince loll. Si je copie/colle, pas de risque d'erreur.

Merci !
 

zeb

Modérateur
Non - désol'. Je te demande juste de faire ce petit effort toi-même en espérant que cela participe à ta compréhension de l'ensemble. A la rigueur, publie ton résultat, et on te dirait "Roooooménon, pas comme ça !!!" à telle ligne ;)
 

duncan2idaho

Habitué
Code:
  Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Count > 1 Then#  For Each Cellule In Target
 Worksheet_Change Cellule
 Next
End If
     Select Case Target.Column
      Case 3 To 13, 15, 27, 28, 32, 33, 36, 37, 39
       If Target.Value <> UCase$(Target.Value) Then
        Target.Value = UCase$(Target.Value)
   End If
  Case 14
  If Target.Value <> StrConv(Target.Value, vbProperCase) Then
  Target.Value = StrConv(Target.Value, vbProperCase)
 End If
  End Select
  End Sub
 

zeb

Modérateur
Ben ligne 2, je ne sais pas pourquoi, il y a un # qui traîne. A la place je verrai bien un saut de ligne. Sinon, ça me paraît bon... Y'a encore un petit effort à faire du côté de l' pour prétendre au titre de développeur de l'année ;)
 

zeb

Modérateur
Argggggggggggggggggg!



Il manque un truc !!!!!

Entre la ligne 4 et 5, entre le Next et le EndIf, il faut sortir de la fonction avec un Exit Sub
 

duncan2idaho

Habitué
Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then For Each Cellule In Target
Worksheet_Change Cellule
Next
   Exit Sub
End If
        Select Case Target.Column
         Case 3 To 13, 15, 27, 28, 32, 33, 36, 37, 39
         If Target.Value <> UCase$(Target.Value) Then
            Target.Value = UCase$(Target.Value)
     End If
    Case 14
    If Target.Value <> StrConv(Target.Value, vbProperCase) Then
    Target.Value = StrConv(Target.Value, vbProperCase)
   End If
    End Select
    End Sub

Yeah!! J'ai réussi :)!!

Merci, sans vous, je n'y serais jamais arrivé !!
 

zeb

Modérateur
Félicitations :sol:

Ligne 2, tu vas me mettre un retour à la ligne entre Then et For, oui ou [:zeb:4] ?
Pour l'indentation, on ne va pas se formaliser :lol:

Tu m'élis une meilleure réponse, steuplé ? C'est pour mettre le topic en [résolu].
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 158
Messages
6 718 522
Membres
1 586 445
Dernier membre
FlySilvers
Partager cette page
Haut