MFC qui se divise en rajoutant une ligne dans un tableau

12test-forum.xlsx (20.46 Ko)

Bonjour à toutes et à tous,

Je rencontre un pb assez fâcheux dans mon tableau excel. Il se trouve que j'utilise des MFC dans plusieurs de mes feuilles de calcul pour mettre en Orange lorsqu'une cellule est vide ou qu'elle ne possède pas la valeur qu'elle devrait avoir. Il faut savoir que parmi ces feuilles, une me sert de "Données", autrement dit, elle stocke toutes les valeurs de manière dynamique (ex: feuille "Europe" avec un tableau avec deux colonnes "Pays" et "Villes" qui contiennent des doublons avec plusieurs valeurs comme A2 = "France" et B2="Paris" mais aussi A3= "Espagne" et A4 = "France" avec B3="Valence" et B4 = "Toulouse"). Cette feuille "Données" va donc, à travers une formule, filtrer toutes les valeurs et récupérer les valeurs uniques dans une colonne "Pays triés" ( de manière verticale) et dans une autre les villes associées à chaque pays, "Villes triées" (de manière horizontale en fonction de chaque pays).

Une fois cela expliqué, rentrons dans mon pb:

Dans ma feuille "global" je possède un tableau avec plein de données et parmi elles la colonne "H" contient des listes déroulantes sur les "pays triés", et la colonne "I" contient des listes déroulantes sur les "villes triées". Afin de créer une liste dépendante vis à vis d'une autre, j'ai décidé de faire un "miroir" de la colonne "pays triés" et la placer dans une feuille "Données dynamiques" sur une colonne A et associer la ville qui va avec ce pays en colonne B dans cette même feuille (Je sais que c'est pas forcément la meilleure méthode, mais j'ai cherché d'autres solutions et souvent on me propose soit de créer plusieurs tableaux avec comme en-tête le champ général et à l'intérieur tous les éléments associées {ex typique avec les voitures et les marques de voiture} sauf que dans mon cas il y a énormément d’éléments et je peux pas demander au personnel de créer à chaque fois des tableaux s'ils rajoutent un autre champ comme "Amérique" par exemple. Autre solution était d'utiliser la formule "Recherche(V,X,H)" mais encore une fois ça ne s'applique que pour des zones où la taille est fixe, or moi ça évolue de manière constante, je ne peux donc pas demander qu'à chaque fois ils re modifient la zone de contrôle ) .

Finalement donc, avec tout ceci précisé, tout semble bien marcher. SAUF, que lorsque je rajoute une ligne intermédiaire dans mon tableau global (càd une nouvelle ligne entre les lignes 3 et 4 par exemple), eh bien la MFC qui est censé vérifier toute la colonne "I" de I2 à I5, se sépare en 2 MFC qui vont de I2:I4 et I5:I6.
Et la MFC qui se met e orange avec cette formule: =NON(ESTNUM(EQUIV(I2;'Données dynamiques'!B2#;0))) se divise elle aussi en 2 mais avec une cellule de retard:

1) =NON(ESTNUM(EQUIV(I2;'Données dynamiques'!B2#;0))) pour I2:I4 (c'est correct)

2) =NON(ESTNUM(EQUIV(I5;'Données dynamiques'!B4#;0))) pour I5:I6 (incorrect).

Voilà, j'espère avoir été assez clair dans mon explication même si c'est pas évident ahaha ...

Je met en copie l'excel en question :)

Merci d'avance pour votre temps qui me sera très précieux

Ps: j'ai réalisé ce classeur comme exemple mais un exemple réel avec les mêmes formules et la même composition, mon vrai classeur y a bcp plus d’éléments, etc sauf que je ne peux pas le partager :(

Bonjour Louis26

Pour qu'il n'y ait pas de soucis,
il faut appuyer sur la touche "Tab" une fois arrivé sur la dernière cellule de ta dernière ligne.

Ou saisir une nouvelle valeur sur la ligne vide juste ne dessous du tableau

Clic-droit insérer une ligne, est non seulement chronophage mais nuit à la MFC effectivement

A+

bonjour,

c'est un problème ennuyeux, mais avec une macro VBA, on peut fusionner ces regles repetitives, si nécessaire.

Hello à vous deux BrunoM45 et BsAlv ,

Pour répondre à Bruno d'abord:

Effectivement insérer une nouvelle ligne en faisant clic-droit c'est pas top mais on m'avait précisé que certains collègues faisaient ainsi et que du coup il fallait prévoir ce côté là (notamment pour un rajout au milieu d'autres lignes déjà existantes). Mais du coup pas le choix, je préciserai qu'il faut procéder autrement

Pour répondre BsAlv:

Oui c'est vrai que c'est possible mais j'ai pas voulu plonger dans le VBA et comme je suis pas un grand expert, je craignais perdre trop de temps. Si jamais y à un code par la qui traine qui justement gère ce genre de cas, je suis preneur. Sinon merci pour l'aide !!

Merci à vous deux d'avoir répondu en tout cas

bonsoir,

j'ai perdu quelque part les MFC originaux, mais essayez cette macro.

L'idée est que les MFC y sont pour toute la plage du tableau, donc les MFC qui ne commencent pas au premier listrow sont effacé et ceux qui commencent au premier listrow sont prolongé vers le dernier.

Quand le nombre des MFC commence à vous énervez, lance cette macro

8test-forum-1.xlsb (34.58 Ko)
Rechercher des sujets similaires à "mfc qui divise rajoutant ligne tableau"