Macro insertion ligne dans tableau ne bouge pas une MFC

Bonjour,

Je m'en remet (encore) à vous.

À la base, j'ai demandé l'aide une mise en forme conditionnel d'une plage horaire afin de détecter les incohérences.

@Arturo83 a proposé une solution qui fonctionne très bien

Puis à force de manipuler mon tableur, je me rend compte (un peu tard) que les MFC sont "un peu" parties en sucette

Le problème est que lorsque je cherche à insérer une ligne dans un tableau, la MFC se décalle/se "duplique" bref, ça fait un joyeux bordel. J'ai du supprimer manuellement beaucoup (vraiment) de ces MFC tellement ça pullulait dans ma feuille.

@Arturo83 m'a alors expliqué que c'était le fait d'insérer une ligne ailleurs qu'au début du tableau. Ce qui est vrai.

Étrangement, la MFC suit sa logique lorsque j’insère une ligne manuellement, en bas du tableau. Mais lorsque j'appuie sur F4 pour répéter l'action, ça re-déconne. IDEM lorsque j'enregistre une macro pour insérer une ligne.

Du coup je ne comprend pas, pourquoi manuellement ça marche bien, pourquoi automatiquement non?

Le problème vient-il de la macro insérer ligne ?

Merci par avance

Cdt

Bonjour

Pour éviter cela insérer à la fin. Ton code insère systématiquement en 12ème position ce qui parait pour le moins bizarre

Ceci suffit

Sub insérer_ligne()
'
' insérer_ligne Macro

    ActiveSheet.ListObjects(1).ListRows.Add
End Sub

ou mieux en nommant correctement tes tableaux

Sub insérer_ligne()
'
' insérer_ligne Macro
'
    Range("NomDuTableau").ListObject.ListRows.Add
End Sub

Bonjour,

Essayez ceci:

Sub insérer_ligne()
    Dim Plage_MFC As Excel.Range, FC1 As Excel.FormatCondition
    Lig = ActiveCell.Row - 4
    Selection.ListObject.ListRows.Add (Lig)

    On Error Resume Next
    DerLig = Sheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row
    '*************************************************************************************
    Range("J5").Select
    Set Plage_MFC = Range("J5:K" & DerLig)
    Plage_MFC.FormatConditions.Delete

    Set FC1 = Plage_MFC.FormatConditions.Add(Type:=xlExpression, Formula1:="=ET($B5=$B4;OU( ET(ARRONDI($J5;5)<ARRONDI($K4;5);ARRONDI($J5;5)>ARRONDI($J4;5)); ET(ARRONDI($K5;5)>ARRONDI($J4;5);ARRONDI($K5;5)<ARRONDI($K3;5)); ET(ARRONDI($J5;5)<ARRONDI($J4;5);ARRONDI($K5;5)>=ARRONDI($J4;5))))")
    FC1.Interior.Color = RGB(255, 192, 0)
End Sub

Cdlt

@78chris : Effectivement cela peut te paraitre bizarre, mais c'est tout simplement la macro que j'ai enregistré, je pensais à tord qu'elle ferait le job

Mais grâce à ton aide, j'ai enfin pu faire fonctionner la MFC ! Je commencais à désesperer pour être honnête, alors merci beaucoup !

@Arturo83 : J'ai également testé ta solution et elle semble fonctionner.

Pour plus de simplicité j'ai utilisé la solution de Chris, et c'est exactement ce que je voulais : une macro "insérer ligne" fiable ... oui je sais ça peut faire sourire les experts

Merci à vous et passez un bon weekend.

Cdt

Rechercher des sujets similaires à "macro insertion ligne tableau bouge pas mfc"