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 ?
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
¡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".
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"
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
Bon, j'ai été inspiré. J'ai fini par faire en sorte pour que ça marche. C'est nettement plus tordu que ce que je pensais... Mais ce fut quand même intéressant.
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.
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...