Macro de reprise de données sous conditions

Bonjour à tous,

Je viens sur ce forum car je suis nouveau dans le monde joyeux d'excel et je sèche complètement sur un sujet.

Je m'explique :

D’une part j’ai les éléments suivants :

1- Une feuille « Projets » contenant diverses informations classées par colonne allant de A à O

La colonne B possède deux valeurs ; soit « Yes » soit « No »

La colonne C renseigne la nature du projet (mécanique, botanique, quantique…)

2- Une feuille « RECAP » comprenant plusieurs tableaux différents en regroupant les projets de divers natures (pas de filtre souhaité)

Exemple : Tableau 1 > Mécanique , Tableau 2 > Botanique, …

Ce que je cherche à faire

Créer une macro qui remplirait les fonctions suivantes :

SI

La valeur de la colonne B de la feuille « Projets » est « YES »

ET

Que la valeur contenue dans la colonne « Nature du projet » (C) est mécanique (exemple)

ALORS

Le contenu des colonnes E, F, K, M et N sont affichées dans l’ordre, et les unes à la suite des autres sur la feuille « RECAP » dans le tableau correspondant (ici dans le tableau mécanique).

De plus est-il possible de declancher cette macro lorsqu’une la colonne B est remplie avec un « YES »

(cela permettrai une mise à jour automatique)

J'avais commencé par appliquer une formule de type =SI() mais je me suis vite rendu compte du peu de pertinence de cette approche.

je vous joints le document qui je pense vous aidera à mieux comprendre ma demande.

Pourriez-vous me donner un coup de main? Mes connaissance en VBA sont quasi nulle et je ne sais par ou commencer.

Merci

Bonsoir,

Ci-joint une proposition à tester.

Bonne soirée

Bouben

C'est exactement ça ! Merci beaucoup Bouben.

Je vais tenter de décortiquer tout cela pour bien comprendre la logique et pouvoir le reproduire mais encore merci pour ton temps et la rapidité de ta réponse.

Je risque d'avoir quelques questions sur la façon dont s'organise/fonctionne ta macro, donc si tu me le permets je vais surement t'embeter encore un peu.

Bonne journée !

Alors j'ai bien tout decotiqué et je pense avoir compris la logique par contre j'aurai une petite questions supplémentaire.

Dans ce cas de figure, les informations vont bien se ranger au bon emplacement en fonction de la nature du projet. Par contre si jamais j'ai disons 12 projets a trier et que je n'ai prévu que 11 lignes dans mon tableau de destination: aie ca coince.

Est-il possible d'ajouter une fonction qui ajouterai automatiquement une ligne supplémentaire a chaque entrée (comme cela on aura toujours un nombre de lign n+1)?

Est ce que quelquechose dans ce goût la pourait fonctionner et si oui où faudrait-il l'intégrer?

Dim lig As Long

For lig = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1

Rows(lig + 1).Insert

Next lig

Merci encore

Bonsoir,

Et zut ! Je croyais que tu n'allais pas le voir ...

On ne peut décidément rien cacher

En fait, c'est plus compliqué : si on veut gérer l'ajout de lignes, il faut gérer aussi la suppression de lignes. En bref, ça fait des décalages partout.

Ci-joint une nouvelle version prenant en compte les points suivants ;

  • ajout de lignes si besoin
  • suppression des lignes vides (si aucune ligne, on en laisse toujours une, pour la lisibilité)
Techniquement, j'ai ajouté 4 cellules nommées, pour simplifier la gestion : TitreMecanique, TitreBotanique, TitreQuantique, LigneFin

Autre modifs :

  • une petite mise en forme conditionnelle sur la colonne B
  • le rafraichissement de l'onglet "Recap" en cas de changement dans la colonne B (ex : Quantique => Botanique), en plus de la gestion actuelle sur modification de la colonne A (Y/N)

A tester

Bonne soirée

Bouben

C'est top !

J'ai retesté et adapté à un autre tableau et ca marche très bien merci ! J'ai quelques soucis de mise en page parfois (les bordures du tableau ne se créent pas),mais ca reste minime comme handicap.

Merci beaucoup pour ton aide .

Jean

Rechercher des sujets similaires à "macro reprise donnees conditions"