Mise en forme conditionelle VBA

Bonjour,

J'ai un tableau dans le quel je voulais afficher une MFC de toute la ligne quand je sélectionne une cellule

Sachant que j'ai déjà fait une MDC je ne veux pas que celle de VBA l'efface ou la supprime.

J'ai fait une macro obtenu de quelqu'un mais cela ne fonctionne pas et je ne sais pas pourquoi

L'erreur indiqué est "erreur 438 Propriété ou méthode non gérée par cet objet"

Voici la macro en question pourtant j'ai écris exactement la même chose

"Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim zone As Range
Set zone = ActiveCell.CurrentRegion

'Cells.FormatConditions.Delete
Dim i As Integer
For i = 1 To Cells.FormatConditions.Count
If Cells.FormatConditions(i).Formulal Like "*ligneActiveMFC*" Then
Cells.FormatConditions(i).Delete
End If
Next

With zone.FormatConditions.Add(xlExpression, Null, "=(""ligneActiveMFC""<>0)*LIGNE(" & zone.Cells(1).Address(False, False) & ")=" & ActiveCell.Row)
.Font.ColorIndex = 1
.Interior.ColorIndex = 27
End With


End Sub"

Si quelqu'un à une idée ou pourrais m'aider merci d'avance

Bonjour maverick59264,

Sans fichier (anonymisé) ce n'est pas facile ...

Il y a quelque chose que, sauf erreur de ma part, je ne comprends pas : pourquoi vouloir créer une MFC en VBA pour mettre en exergue la ligne sélectionnée dans le tableau ?

Si "ligneActiveMFC" ne désigne pas déjà une cellule, tu peux nommer une cellule de ce nom (ou autre si tu préfères), utiliser l'évènement "Worksheet_SelectionChange" pour alimenter cette cellule avec la ligne courante et créer une MFC qui testera simplement "=ligneActiveMFC=LIGNE()" et pour laquelle tu définiras le format souhaité.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Au cas où plusieurs lignes ou blocs de cellules ne soient sélectionnés => sortie
    if (Target.Rows.count > 1) or (Target.Areas.count > 1) Then Exit Sub
    ' Alimentation de la cellule nommée ligneActiveMFC
    ' /!\ Si la feuille contenant la cellule ligneActiveMFC est protégée, pensez à la déprotéger et à le reprotéger ensuite.    
    Range("ligneActiveMFC").Value = Target.Row
End Sub

Si je ne réponds pas à ton attendu, merci de fournir un fichier (anonymisé).

Cdlt,

Cylfo

Bonjour,

En PJ j'ai mis le fichier Excel

J'ai déjà une mise en forme conditionnelle à part ensuite je voudrais faire ma mise en forme conditionnelle VBA qui me met en surbrillance toute la ligne quand je sélectionne une cellule sans que cela n'affecte pas la 1ère mise en forme conditionnelle ou la supprime.

Voici le fichier

11test.xlsm (72.83 Ko)

Re,

Voir fichier joint. Le code VBA est uniquement présent pour alimenter la cellule "ligneActiveMFC" que j'ai définie sur l'onglet (ajouté) "Paramètres" pour ne pas polluer la feuille contenant les tableaux. L'onglet "Paramètres" peut être masqué.

Dans le doute j'ai appliqué la MFC sur les 2 tableaux, s'il ne faut que celui du bas, il suffit de modifier la MFC et d'ôter la plage surlignée en jaune ci-dessous.

image
15test2.xlsm (72.62 Ko)

Cdlt,

Cylfo

Bonjour,

Ce que je souhaite c'est que ma mise en forme conditionnelle s'applique sur chaque ligne ou j'aurai sélectionné la cellule ensuite que cela disparaît.

Je veux que la MFC soit dynamique en faite qu'elle met en surbrillance la ligne de la cellule sélectionné. active

A l'origine la macro fonctionné bien met en effaçant la MFC une fois appliqué, dans VBA cela supprimer l'ensemble des MFC déjà mises.

C'est pour cela que l'on ma dit de nommé ma mise en forme et ensuite de supprimer uniquement celle-ci

Cordialement,

Ce que je souhaite c'est que ma mise en forme conditionnelle s'applique sur chaque ligne ou j'aurai sélectionné la cellule ...

C'est à dire que la surbrillance est cumulative, vous sélectionnez la ligne 27, elle se met en exergue, vous sélectionnez en suite la ligne 30, la 27 reste en exergue et la 30 se met également en exergue, etc. ?

... ensuite que cela disparaît.

cela disparait à quel moment ?

Bonjour

Est ce que ça repond à tes souhaits?

les lignes qui répondent à la MFC ne sont pas modifiées..

12test.xlsm (71.62 Ko)

A+ François

Bonjour,

https://www.youtube.com/watch?v=OQJzipM0rgU

Sur le lien il y à la macro en faite la MFC disparait quand je sélectionne une autre cellule

Avec la solution de la personne et bien j'ai le problème du début

J'espère que le lien j'ai le droit de le mettre

Cordialement,

Nouvelle tentative

24test3.xlsm (73.41 Ko)

Bonjour Merci,

Ton fichier marche par contre sur le miens non il m'indique cela le problème d'après mon fichier viens de

"Worksheets("Paramètres").Range("ligneActiveMFC").Value = Target.Row"

image

Je ne comprends pas

Peux-tu vérifier que dans ton fichier :

  • l'onglet "Paramètres" est présent ?
  • il y a bien 2 cellules nommées respectivement "ligneActiveMCF" et "colonneActiveMFC". Si tu as défini ces 2 cellules sur un autre onglet, il faut modifier la référence à" Paramètres" dans les 2 lignes où il y a "Worksheets".

Il faut aussi que les MFC du tableau soient présentes dans ton fichier dans le même ordre et avec la 1ère de 3 en interruption si vrai. Mais ce n'est pas cela qui provoque le plantage par contre tu n'auras pas de surbrillance.

Bonjour Cylfo,

Merci pour ton aide

Cela fonctionne très bien c'est de ma faute j'avais oublié de nommées les lignes 😊

Tout roule merci encore

Rechercher des sujets similaires à "mise forme conditionelle vba"