Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Une macro qui ne marche pas terrible avec des cellules fusionnées

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai une macro événementielle qui utilise plusieurs fonctions.
Si je rentre dans une cellule assujettie à la macro événementielle une valeur supérieure à une valeur limite définie dans la feuille, alors la cellule qui est immédiatement à sa gauche se met à clignoter affichant brièvement la valeur limite qui ne peut être dépassée.
Ça marche bien à condition que la cellule qui clignote soit unique. Si cette cellule est un ensemble de cellules fusionnées, alors ça bloque.
Comment faire en sorte que ça marche que ce soit pour une unique cellule ou des cellules fusionnées ?

Merci pour tout commentaire.
 

Pièces jointes

Dernière édition:
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Bonjour Magic Doctor 🙂

Après avoir fusionné les cellules(en exemple), j'ai modifié l'évenement comme ceci et la cellule clignote sans problème.

Code:
Private Sub Worksheet_Change(ByVal target As Range)
    If Not Intersect(target, Range("e6, f6, g6")) Is Nothing Then '--> "UY désirées"    
        If target > [F4] Then ControlEntrada target, "Maximum = " & [F4]   
    End If
    target.Select
End Sub
 
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Bonsoir mapomme,

Pas rafraîchi l'écran...

Je me doutais bien que c'était un truc de ce genre, mais j'avais totalement oublié la syntaxe.
Maintenant, ça marche très bien.

Comme quoi, parfois le clignotement peut être utile sans être agaçant.

Bonne soirée.

PS : en PJ la même version que mapomme + 2 bricoles visuelles.
 

Pièces jointes

Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

¡Caramba! Je m'étais enthousiasmé.

J'ai fait quelques modifications, mais...uniquement pour les cellules fusionnées (sinon ça marche) :
Quand la valeur est supérieure à la valeur limite, les cellules fusionnées n'affichaient pas la sentence --> réparé
En revanche, quand le clignotement cesse, il m'est impossible de récupérer la valeur initiale de la cellule clignotante, à savoir "Ma valeur".

Comment s'y prendre ?
 

Pièces jointes

Dernière édition:
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Bonjour,

Code:
Sub ControlEntrada(cel As Range, mefi As String, Optional x As Byte = 1)
    ...
    Set celda = cel.Offset(, -1).MergeArea.Range("A1") 'cellule immédiatement à gauche de la cellule "cel"
eric
 
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Bonsoir eriiiic,

Je viens d'essayer, en tout cas chez moi ça ne marche pas. Dans l'intitulé reste affiché la sentence après clignotement et non pas le libellé normal de l'intitulé : "Ma valeur".
À tout hasard, j'ai essayé :
Code:
Set celda = cel.Offset(, -1).MergeArea
ça plante.

Mais je n'ai pas compris .Range("A1") après "MergeArea".
 
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Bonjour,

C'est curieux, je viens de réessayer ta solution et maintenant ça marche correctement. Qu'est-ce qui s'est passé ?
Donc, pour résoudre ce problème (comme d'autres), on peut y arriver par différents moyens.
Ça m'aura permis de mieux comprendre "MergeArea".
En revanche, je n'ai pas compris :
Code:
 Set celda = cel.Offset(, -1).MergeArea.Range("A1")
De mon côté, j'ai résolu le problème en comprenant qu'il fallait mettre une valeur dans la 1ère cellule d'une plage.

En tout cas, merci pour ton aide.

Bonne journée.
 
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

.MergeArea retourne le range de la plage fusionnée (ou pas), .Range("A1") le range de la 1ère cellule de cette plage
 
Re : Une macro qui ne marche pas terrible avec des cellules fusionnées

Re,

C'est curieux, dans mon esprit .Range("A1") représente la 1ère cellule de la feuille, mais ça pourrait aussi être la 1ere cellule d'une plage de cellules (en l'occurrence fusionnées) quelle qu'elle soit. Si c'est bien le cas, je ne savais pas.
Une chose est certaine, les cellules fusionnées --> bordel. Mais parfois on ne peut pas faire autrement...
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…