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

XL 2013 afficher les lignes suivant le mois

bruno972

XLDnaute Junior
Bonjour,

j'ai parcouru le forum sans avoir trouvé une réponse sauf en VBA mais je suis très mauvais.

voilà mon besoin:

Sur chaque onglet de mois doit apparaitre uniquement les lignes qui corresponde à la fréquence de l'onglet "base".

Puis qu'a chaque modification sur l'onglet base, la mise à jour se fasse sur l'ensemble des onglets mois.

Merci d'avance pour vos propositions.

Cordialement
 

Pièces jointes

  • suivi du prév.xlsx
    31.8 KB · Affichages: 5

bruno972

XLDnaute Junior
Bonjour et merci à vous deux pour votre réponse rapide. les 2 propositions font le job recherche.

est-il possible lorsque l'on supprimer un N°MAO sur l'onglet Base que la ligne entière disparaisse sur le mois concerné.

Daniel peux-tu m'expliquer ta formule afin que je comprenne le principe.

merci encore et bon Week-end

Bruno
 

danielco

XLDnaute Accro
Bonjour à tous,

Volontiers. Pour extraire le nom de la feuille, j'utilise :
VB:
CELLULE("nomfichier";$A$1)
qui renvoiele chemin du fichier, le nom du fichier et celui de la feuille :
"d:\Users\dcola\Downloads\[suivi du prév.xlsx]Janvier""
Pour extraire "Janvier", je cherche la position de "]" :
Code:
CHERCHE("]";CELLULE("nomfichier";$A$1))
qui renvoie 45. J'ajoute 1 pour avoir la position de "J" et j'utilise STXT pour extraire le nom de la feuille ( le nom de l'onglet ne peut dépasser 31 caractères) :
Code:
STXT(CELLULE("nomfichier";$A$1);CHERCHE("]";CELLULE("nomfichier";$A$1))+1;31)
Je cherche ensuite la colonne correspondante dans la plage B3:M3 de "Base" :
Code:
EQUIV(STXT(CELLULE("nomfichier";$A$1);CHERCHE("]";CELLULE("nomfichier";$A$1))+1;31);Base!$B$3:$M$3;0)
qui renvoie 1 pour Janvier.
La fonction DECALER me permet de sélectionner B4:B20 de Base :
Code:
DECALER(Base!$A$4:$A$20;;EQUIV(STXT(CELLULE("nomfichier";$A$1);CHERCHE("]";CELLULE("nomfichier";$A$1))+1;31);Base!$B$3:$M$3;0))
Soit :
{"x";"x";"x";"x";0;0;0;0;0;0;0;0;0;0;0;0;0}
La fonction AGREGAT avec les paramètres 15 et 6 correspond à PETITE.VALEUR en ignorant les valeurs d'erreur.
Code:
LIGNE($1:$20)/(DECALER(Base!$A$4:$A$20;;EQUIV(STXT(CELLULE("nomfichier";$A$1);CHERCHE("]";CELLULE("nomfichier";$A$1))+1;31);Base!$B$3:$M$3;0))="x")

renvoie le numéro des lignes contenant "x" et "#DIV/0!" pour les autres ( :
{1;2;3;4;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!}
Les valeurs d'erreur étant ignorées, j'obtiens les numéros de ligne des cellules contenant "x". Ensuite avec INDEX, je récupère les valeurs de la colonne A correspondant à ces lignes.

Daniel
 

bruno972

XLDnaute Junior
Merci JHA pour ta réponse, je pense que je vais choisir ce modèle.
Merci Daniel pour ton explication claire et détaillée, je vais essayer de la reproduire afin de comprendre tout le mécanisme.

Bruno
 

Discussions similaires

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