SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

emi06

XLDnaute Nouveau
Bonjour à tous,

Je suis sur Excel 2007 et je bloque sur un problème depuis qqes jours.

J'explique: sur mon fichier excel (cf PJ), j'ai 3 onglets, seuls les 2 derniers m'importent.
Le 2ème onglet regroupe une liste de contacts selon chaque société (dont les informations générales sont en onglet 1). Les contacts surlignés en jaune sont ceux à qui je dois m'adresser en particulier. Ce sont ceux-là qui m'intéressent.

Voilà mon problème:
Dans l'onglet 3, lorsque je sélectionne une société dans la 2nde fonction de recherche (grâce à une liste déroulante), un ou plusieurs contacts sont possible. Je souhaiterai avoir seulement les informations concenrant celui surligné en jaune dans l'onglet précédent. Sauf qu'ici, ça me renvoie uniquement le 1er contact rencontré en partant du haut. Ainsi je souhaiterai trouver une formule ou une macro qui me permettrait d'avoir l'ensemble des infos nécessaires, un peu comme réalisé dans la 1ère fonction RECHERCHEV. J'ai déjà essayé toutes sortes de choses (SI+INDEX+EQUIV, macro SiCouleur qui n'a pas aboutie) mais étant totalement novice, je n'avance pas à grand chose...

Juste pour préciser, cette 2ème fonction recherche me permettra d'envoyer un mail à la personne voulue; mail dont j'ai déjà la macro (sûrement à modifier un peu par la suite, mais je n'en suis pas encore là^^).

J'epsère avoir été assez claire et j'attends votre aide avec impatience.
Bonne journée.
 

Pièces jointes

  • Fichier test.xlsx
    24.9 KB · Affichages: 65
  • Fichier test.xlsx
    24.9 KB · Affichages: 75
  • Fichier test.xlsx
    24.9 KB · Affichages: 70

sousou

XLDnaute Barbatruc
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonjour emi06
Une solution utilisant une macro sur évènement change.
Cherche la cellule jaune correspondant au choix.
A voir si tu peux faire avec, et compléter si nécessaire
 

Pièces jointes

  • sousou emi06.xlsx
    25.6 KB · Affichages: 96

emi06

XLDnaute Nouveau
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonjour Sousou,

Tout d'abord, merci de passer un peu de temps pour m'aider, ça fait plaisir pour un 1er post :)

Comme je le disais précédemment, je suis débutante en VBA et quand tu me parles de "macro sur événement change", je t'avoue que je suis perdue.
Suite à ta réponse, j'ai cherché à quoi cela pouvait correspondre. J'ai à peu près compris mais je n'ai pas réussi à trouver qqch de convainquant pour une macro.
Serait-il possible de m'orienter un peu plus ?
Autre chose, par rapport au fichier que tu m'as renvoyé, je n'arrive pas à comprendre ce que tu as modifié et/ou ajouté (pas de macro, format .xlxs et non .xlsm). Pourrais-tu m'expliquer stp ?

Merci d'avance pour tes futures réponses :)
 

sousou

XLDnaute Barbatruc
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

bonsoir emi06
Si tu débutes, je vais essayé de t'expliquer un peu mieu.
1 une macro c'est un programme constitué d'une suite d'instruction VBA
2 excel dispose d'un certain nombre d'évènements qui permettent de lancer une de ces macros
3 exemple chaque feuille gébère un évènement "change" à chaque fois qu'une modidfication intervient sur cette feuille
4 dans notre cas j'utilise l'évènement change pour effectuer les actions que tu souhaitais.

Va sur dévlopeur/visualbasic editeur et regarde le contenu de la feuille recherche

Bien sûr il manque beaucoup d'explications mais ce forum te permettra d'avancer tout doucement dans le monde du VBA

à+
 

emi06

XLDnaute Nouveau
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonjour Sousou,

Comme tu me l'as conseillé, j'ai ouvert le VB Editor mais aucun code/contenu n'apparaît dans la feuille recherche, ni dans les 2 autres feuilles, ni dans "This Workbook".
Il doit y avoir un problème ou peut-être que je ne vais pas au bon endroit mais je ne pense pas que ce soit ça.

A très vite :)
 

sousou

XLDnaute Barbatruc
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonjour.
J'ai fait n'importe quoi.
Je t'ai envoyé le fichier en xlsx ! ce format ne gère pas les macro et bien sûr cela ne pouvait pas fonctionner.

voici donc le bon format xlsm!!!! avec quelques explications dans le code
 

Pièces jointes

  • sousou emi06.xlsm
    32.5 KB · Affichages: 104

emi06

XLDnaute Nouveau
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonjour Sousou,

C'est juste génial ta macro ! Exactement ce que je me triturai à faire ! :) Le top du top !
Comme je n'ai pas envie de finir bête, j'aimerai que tu me détailles un peu ce que tu as fait.
1. Détermination de la cellule qui a été modifiée --> ok
2. Dans la ligne suivante :

For Each i In ThisWorkbook.Names("Sociétés").RefersToRange

" ThisWorkbook.Names("Sociétés") " fait bien référence à ma plage "Société" ?
".RefersToRange" : correspond à la société qu'on pointe en particulier dans cette plage "Sociétés" ?

3. If i = Target And i.Interior.ColorIndex = 6 Then --> ok (Target représente bien dans ce cas le nom de la société ?)

4. Pour toutes les lignes du type : " Target.Offset(1, 0) = i.Parent.Cells(i.Row, 1)", là je suis perdue

Target.Offset(i, 0) : que signifie le ".offset" ? La paranthèse (i, 0) indique la position de quelle cellule ? Celles en dessous de D16 ?
i.Parent.Cells(i.Row, 1) : est-ce que le .Parent.Cells fait référence aux cellules adjacentes (càd sur la même ligne) de la feuille "Liste Contacts" ? Pour le (i.Row, 1), j'ai compris à quoi cela correspondait :) (noms, prénoms, mail, type)

Autre question:
- lorsque tu fais ce genre manip, est ce que le format de la cellule copiée (cellule de la feuille Liste Contacts) reste le même dans la feuille Recherche ? (Comme je disais à l'initial, je souhaiterai envoyer un mail à partir de cette "fonction recherche par société", il faudrait donc que le format de la cellule soit conservé pour que je puisse directement envoyer le mail, via un mailto, depuis les cellules de l'onglet Recherche)

Merci pour tes conseils et ton aide :)

Bonne soirée !
 

sousou

XLDnaute Barbatruc
Re : SI cellule colorée en feuille 1 ALORS copier valeur de la cellule en feuille 2

Bonsoir.
2 thisworkbook.names("société").referstorange
traduction:L'ensemble des range (cellules) de la plage société de ce classeur.
REnvoi donc une collection de cellules
3 target représente la cellule modifiée, de la feuiile recherche donc la société recherchée.
i est une des cellules de la plage société
4 objet.offset( ligne colonne) est une propriété qui renvoi la cellule relative à l'objet
si objet est b2 objet.offset(2,3) renvoi e4.
objet.parent renvoi le parent de l'objet
si objet est une cellule
objet.parent renvoi la feuille
si objet est une feuille, parent renvoi le classeur

format
Ici non le format n'est pas copié d'ailleurs il n'y à pas de copie au sens windows.
On prend une valeur et on la met dans une cellule.
C'est difficile d'expliquer sur ce forum. je te conseille d'expérimenter de tester pour mieux comprendre et d'utiliser l'aide vba où les explications sont assez bonnes + tous les tutoriels que tu trouveras sur ce site
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR