Encore un problème de majuscule

Bonjour à tous,

Mon problème concerne la mise en majuscule de colonnes. Je voudrais mettre la quasi totalité de mes colonnes en majuscule.

J'ai donc cherché et trouvé une VBA (enfin je crois que c'est ça) pour le faire et elle à l'air de fonctionner pas trop mal mais il y a un hic : je ne peux plus faire CTRL + Z quand je mets cette VBA. De plus, je souhaiterais également que deux de mes colonnes (la 34 et la 35) se mettent avec juste la première lettre en majuscule. Là je cale car je ne comprends strictement rien à la VBA et pour couronner le tout je ne comprends pas l'anglais (sauf "y love you" et "shit" !)

Alors si une âme charitable pouvait m'aider... Merci d'avance

Voilà le code que j'ai récupéré et mon fichier :

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 1 To 4, 7 To 33, 36, 37, 38, 39, 41

            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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Bonjour

pegpas a écrit :

je ne peux plus faire CTRL + Z

On ne peut pas y faire grand chose

Pour le reste modifies ta macro (partie surlignée)

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 1 To 4, 7 To 33, 36, 37, 38, 39, 41

            If Target.Value <> UCase$(Target.Value) Then

                Target.Value = UCase$(Target.Value)

            End If

        Case 34, 35

            If Target.Value <> StrConv(Target.Value, vbProperCase) Then

                Target.Value = StrConv(Target.Value, vbProperCase)

            End If

    End Select

End Sub

Bonjour Banzai64,

Merci à toi pour ta réponse, ça fonctionne sauf que cela me mets une majuscule à tous les mots. Je voulais juste une majuscule au premier mot de la phrase mais ce n'est pas grave.

En fait je m'aperçois que la solution était toute conne. Enfin je ne risquais pas de trouver sans ton aide car je ne comprends absolument rien à ce que je fais.

Merci encore.

Bonjour,

Modifies ton code :

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub

    Application.EnableEvents = False

    Select Case Target.Column
        Case 1 To 4, 7 To 33, 36 To 41
            Target.Value = UCase$(Target.Value)
        Case 34 to 35
            Target.Value = StrConv(Target.Value, vbProperCase)
    End Select

    Application.EnableEvents = True
End Sub

Je n'ai pas compris le Ctrl+z

Cdlt.

Bonjour Jean-Eric,

Merci pour ton aide. Ton code fonctionne également comme celui de Bonzai64.

Pour le CTRL + Z, je voulais dire que lorsqu'il n'y avait pas de code VBA, je pouvais faire CTRL+Z quand je m'apercevais que j'avais fait une erreur de saisie ou quand je voulais effacer les dernières saisies. Mais depuis que j'ai mis un code, je ne peux plus le faire, Il faut que je clique dans la cellule et que je fasse "suppr".

Merci encore de m'avoir aidé.

Rechercher des sujets similaires à "encore probleme majuscule"