Message d'erreur VBA quand des cellules sont fusionnées

Bonjour à tous,

Je travaille sur un fichier Excel et ai ajouté un code afin de n'obtenir que des lettres en majuscule, quelle que soit la saisie (les lettres saisies en minuscule se transforment automatiquement en lettres majuscules), voici le code :

vba

Le code marche très bien. En revanche, dès que j'utilise la touche "suppr" de mon clavier sur des CELLULES FUSIONNEES, la fonction du code saute complètement, les lettres saisies en minuscule restent en minuscule... et ce message d'erreur apparaît :

vba2

. Sans utiliser la touche "suppr", le code marche parfaitement bien, sur l'intégralité de mon sheet.

Avez-vous déjà eu affaire à ce type d'erreur ? Et savez-vous comment je peux le régler ?

Selon Excel, c'est cette ligne du code qui pose problème :

bug

D'avance, je vous remercie beaucoup.

Passez une bonne journée !

Bonjour,

Je ne connais pas grande chose en macros. Cependant, si vous pouvez chargé un fichier excel pour exemple, ça serait mieux.

Bonjour,

L'erreur doit survenir quand tu sélectionnes plusieurs cellules.

Donc !...

Cdlt.

Bonjour,

L'erreur doit survenir quand tu sélectionnes plusieurs cellules.

Donc !...

Cdlt.

Bonjour, merci pour votre retour.

Au même titre que si j'étends une cellule à plus d'une autre cellule, le même message d'erreur apparaît... Il n'y a donc pas de solution à ce problème ?

Selon Excel, ce serait cette ligne du code qui pose problème :

bug

Merci à tous !

Re,

Tu peux ajouter en début de procédure :

If Target.Count>1 then Exit Sub

A te relire.

Cdlt.

bonjour,

[EDIT] Jean-Eric (Sorry...)

Ce qui pose surtout problème ce sont les cellules fusionnées.

Elles sont en règle générale assez peu compatibles avec les macros...

De plus les macros évènementielles sont aussi assez susceptibles on ne fait pas assez attention à Target... Tant que ça passe on fonce tête baissée : C'est quand ça coince qu'on commence à se poser des questions...

Une bonne évènementielle devrait commencer par

Il Target.Count = 1

De manière à s'assurer qu'on n'est pas sur une sélection multiple...

Quand on modifie une cellule c'est aisée de dire que Target est une cellule et on intercepte l'évènement

Quand on est sur plusieurs cellules en ligne ça peux encore passer dans ton cas... Et encore !

Mais quand la fusion concerne plusieurs cellules en ligne et en colonne ça devient un vrai casse-tête.

Les habitués d'Excel évitent de ce servir des fusions (sauf pour des présentation du type PowerPoint..., organigramme, etc...) Pour tout le reste en particulier si vous utilisez du VBA évitez les fusions de cellules.

Comme il n'y a pas de fichier joint on ne peut guère en dire plus.

A+

Re,

Tu peux ajouter en début de procédure :

If Target.Count>1 then Exit Sub

A te relire.

Cdlt.

Jean-Eric,

Pour l'instant cela fonctionne très bien ! Merci infiniment !

Je reviens vers toi si je rencontre un autre problème.

Merci beaucoup,

Pauline

Bonjour, Salut à tous... !

Si tu mets en condition que Target.Count ne soit pas supérieur à 1, la mise en majuscules ne s'appliquera pas aux cellules fusionnées !

Je conseillerais donc plutôt de modifier ta ligne de commande de mise en majuscules en :

    Target.Cells(1, 1) = UCase(Target.Cells(1, 1))

Elle ne s'appliquera ainsi qu'à une seule cellule, ce qui éliminera l'erreur, tout en continuant de s'appliquer à toutes tes interventions : cellules uniques ou fusionnées, ou sélection multiple...

Cordialement.

Rechercher des sujets similaires à "message erreur vba quand fusionnees"