Modifier un VBA pour avoir une 2ème colonne en majuscules

Bonsoir,

Une aide très précieuse m'a été donnée pour mettre la colonne A en majuscules.

Mais je n'arrive pas à modifier son code VBA pour mettre une deuxième colonne, la E, tout en majuscules.

Quelqu'un s'y connaît-il ?

Merci :-)))))

Bien cordialement

Bonsoir,

Au lieu de :
Set Plage = Range("A3:B67,E3:E67,D3:D67,L3:L67")
écrire :
Set Plage = Range("A3:B67,E3:E67,D3:E67,L3:L67")

Ensuite le reclic pour le "1" ne marche pas car il est géré par le Selection_Change, hors si on clic et que l'on reclic sur la même cellule le 1 ne part pas.
Et si on clic par mégarde dans une des colonnes, le 1 apparait ou disparait alors qu'on ne voulait rien faire.

Le mieux est de placer votre code du 1 sur l'événement double clic, avec Cancel = True pour éviter d'entrer dans la cellule en mode de saisie de texte :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(ActiveCell, Range("F3:K67")) Is Nothing Then Cancel = True: Target.Value = IIf(Target.Value > 0, "", 1)
End Sub

@ bientôt

LouReeD

Merci LouReed pour ton aide :-)

Ça ne fonctionne pas ma colonne E, tout en majuscules car je pense qu'il faut modifier également ces lignes suivantes en agissant sur la colonne 5 :

If Len(Cel.Value) > 0 Then 'cellule n'est pas vide
If Cel.Column = 1 Then 'colonne A
Cel.Value = UCase(Cel.Value) 'tout en majuscules
Else 'colonne B

Mais je ne sais pas comment écrire le code :-((((

Mais je ne sais pas comment écrire le code :-((((

Sinon, super pour le "1" en double clic !!!!!!

C'est beaucoup mieux comme ça ! MErci bcp :-)))))))

à +

Bonsoir,

je n'avais pas vu le test de la colonne, donc il faut un OU : colonne A ou colonne E donc 1 ou 5 !

Private Sub Worksheet_Change(ByVal Target As Range)
     Dim Plage As Range
     Dim Cel   As Range
     Application.ScreenUpdating = False
     Set Plage = Range("A3:B67,E3:E67,D3:E67,L3:L67")
     If Not Intersect(Plage, Target) Is Nothing Then    'rien modifier dans "plage" = quitter
        Application.EnableEvents = False
        For Each Cel In Plage
             If Len(Cel.Value) > 0 Then         'cellule n'est pas vide
                  If Cel.Column = 1 Or Cel.Column = 5 Then        'colonne A ou E
                       Cel.Value = UCase(Cel.Value)     'tout en majuscules
                  Else 'colonne B
                       Cel.Value = WorksheetFunction.Proper(LCase(Cel.Value))     'seulement la première
                  End If
             End If
        Next
        Application.EnableEvents = True
    End If
End Sub

@ bientôt

LouReeD

J'ai modifié le code du double clic afin qu'il réagisse que s'il y a une valeur en colonne 1 (A) :

@ bientôt

LouReeD

Bjr et super LoReeD,

Merci beaucoup.

Juste pour des textes à phrases (notamment la colonne "observations"), c'est possible de ne mettre qu'une majuscule en début de phrase mais pas pour les autres mots de la même phrase ?

Et toute dernière chose, c'est possible de mettre un "1" dans les colonnes E à K mais si un autre clic apparaît sur la même ligne, si on double clic, y'aura un "2" et si on reclic encore sur la même ligne, un "3", etc, etc, ?

Merci LoReeD :-))))))))))))))))

Bonne journée

Bonjour,

quid du retour à la cellule vide ? On peut monter jusqu'à combien ?
Pour la majuscule seule c'est déjà fait non ?

@ bientôt

LouReeD

Bonsoir LooReeD,

quid du retour à la cellule vide ? Je ne comprends pas ton quid, désolé...

On peut monter jusqu'à combien ? De 1 à 6 puisqu'il y a 6 colonnes ;-)))

Pour la majuscule seule c'est déjà fait non ? Non c'est pas fait car pour des textes à phrases (notamment la colonne "observations"), je voudrais juste une majuscule en début de phrase mais pas en début de chaque mot de la phrase ;-))))

Merci à toi et bonne soirée :-)))))))))))))

Le quid c'était de savoir comment fait-on si de 3 on veut passer à rien ? La touche SUPR, les doubles clics pour faire le tour des "6" puis retour à rien ?

Je ne sait pas...

@ bientôt

LouReeD

Bonsoir,

Voici les deux codes à mettre sur la feuille (côté VBA ) :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim LeMax As Integer
    If Not Intersect(Target, Range("F3:K67")) Is Nothing Then
        Cancel = True
        LeMax = Application.WorksheetFunction.Max(Range("F" & Target.Row & ":K" & Target.Row))
        If LeMax >= 6 Then
            Cells(Target.Row, Target.Column) = ""
        Else
            Cells(Target.Row, Target.Column) = Application.WorksheetFunction.Max(Range("F" & Target.Row & ":K" & Target.Row)) + 1
        End If
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Plage As Range, Cel As Range, Tablo
    Application.ScreenUpdating = False
    Set Plage = Range("A3:L67")
    If Not Intersect(Plage, Target) Is Nothing Then    'rien modifier dans "plage" = quitter
        Application.EnableEvents = False
        For Each Cel In Plage
            If Cel.Column = 1 Or Cel.Column = 5 Then        'colonne A ou E
                Cel.Value = UCase(Cel.Value)     'tout en majuscules
            Else
                If Cel.Value <> "" Then
                    Tablo = Split(Cel.Value, " ")
                    Cel.Value = WorksheetFunction.Proper(Tablo(0)) & LCase(Mid(Cel.Value, Len(Tablo(0)) + 1))
                End If
            End If
        Next
        Application.EnableEvents = True
    End If
End Sub

Mais le fonctionnement du double clic de 1 à 6 avec le fait de pouvoir remettre la cellule à rien ne me plait pas. Comment voyez vous la chose au "quotidien" ?

@ bientôt

LouReeD

Bonjour LouReeD,

C'est absolument parfait !!!!!!! Merci beaucoup :-))))))))))))))))

Si je peux un tout petit peu abuser de ta gentillesse, serait-il possible de transformer un chiffre en "cellule vide" si on double clic sur un chiffre existant ?

Si oui, prenons un exemple :

Dans une ligne, j'ai enregistré le 1, le 2, le 3 et le 4. Je veux effacer le numéro "2" en double cliquant dessus et du coup le "3" devient automatiquement "2" et le "4" devient "3".

Qu'en penses-tu ?

Merci

Bonne fête du 1er mai :-))))))))))))))))

à +

Rechercher des sujets similaires à "modifier vba 2eme colonne majuscules"