Majuscule VBA

Bonjour à Tous,

Dans une feuille (Excel 2010) j'ai le code suivant qui force l'écriture en majuscule de certaines colonnes:

Private Sub Worksheet_Change(ByVal zz As Range)

If (zz.Column = 2 _

Or zz.Column = 4 _

Or zz.Column = 5 _

Or zz.Column = 6 _

Or zz.Column = 10 _

Or zz.Column = 14) _

And zz.Row >= 4 Then

Application.EnableEvents = False

zz = UCase(zz)

Application.EnableEvents = True

End If

End Sub

Si je sélectionne plusieurs lignes de la même colonne et que j'efface les données, la macro ne fonctionne plus. Elle affiche le message suivant:

Erreur d 'exécution 13

Incompatibilité de type

Malgré toutes mes recherches je n'ai pas trouvé la solution pour y remédier. Je suis plus que débutant en VBA.

Merci de votre aide et joyeuses fêtes.

Cordialement

Rampon_23

vba maj

Bonjour,

Au tout début de ta procédure, tu écris :

If Target.Count > 1 Then Exit Sub

Bonjour,

Une proposition pour le principe, ne sachant pas à quoi correspond zz !

Bonnes fêtes de fin d'année.

Cdlt.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Row < 4 Then Exit Sub
    Select Case Target.Column
        Case 2, 4, 5, 6, 10, 14
            Target.Value = UCase(Target.Value)
    End Select
End Sub

Bonjour Jean-Eric et bonjour à Tous,

Merci pour la réponse, mais le problème persiste.

Pour éviter cela, la solution consiste à sélectionner la zone concernée et d'utiliser la fonction "Effacer le contenu" au lieu de "Supprimer".

Je ne comprends pas pourquoi, mais je me contente de cette solution.

Merci à Tous, joyeux Noël et bonne heureuse année 2017

Cordialement

Rampon_23

Bonjour,

peux tu nous dire quand même à quoi correspond zz ?

Cdlt.

Rebonjour Jean-Eric,

Malheureusement pas. Cette macro a été réalisée par un professionnel de la branche sans que je puisse obtenir d'infos précises.

Il semblerait que zz soit en relation avec toutes les cellules de la même colonne.

Je sais, explication très peu claire d'un néophyte.

Désolé.

Rampon_23

Bonjour,

zz corespond tout simplement à Target qui a été renommé dans l'argument donc, dans le code que nous t'avons donné, il suffit de remplacer Target par zz

Rechercher des sujets similaires à "majuscule vba"