XL 2016 Copier valeur cellules à chaque changement de valeurs d'un bloc de cellules

KIM

XLDnaute Accro
Bonjour le forum, Bonjour les ami(e)s,
Je reviens vers vous car j'ai besoin de votre aide. Dans le fichier joint, j'ai 2 blocs de données. Le 1er me donne les informations de produits (3 max) et le 2è me donne la cotation de divers fournisseurs.
Je souhaite compléter le 1er bloc des produits par la meilleure cotation et le nom du fournisseur (valeur) du 2è bloc du rang=1. Ceci doit se faire dans Worksheet_Change à chaque changement des données de la col H du bloc Cotation.
Voir fichier ci-joint
Je vous remercie de votre aide
KIM
 

Pièces jointes

  • CopyCelConditions.xlsm
    20.3 KB · Affichages: 9

KIM

XLDnaute Accro
Bonsoir le Forum et les ami(e)s,
3 lignes correspondent à 3 articles.
Pour chaque article, ci-dessous un bloc de lignes de simulation de coût.
Pour chaque article comment récupérer le meilleur coût correspondant au rang =1 et son fournisseur?
Merci d'avance de votre aide
KIM
 

Pièces jointes

  • CopyCelConditions1.xlsm
    19.8 KB · Affichages: 3

KIM

XLDnaute Accro
Bonsoir le Forum et les ami(e)s,
J'ai essayé de remplir la cellule L5 et M5 par la valeur de [H15:H17] dont le rang [I15:I17] =1
Ce code ci-dessous ne me donne aucun résultat. Y-a-t-il une erreur dans la syntaxe?

VB:
If Not Intersect(Target, Range("H15:H17")) Is Nothing Then
    For Each c In [I15:I17].SpecialCells(xlCellTypeVisible)
        If c.Value = "1" Then
            Range("L5").Value = c.Offset(0, 8)
            Range("M5").Value = c.Offset(0, 2)
        End If
Next c
End If

Merci de votre aide
KIM
 

Pièces jointes

  • CopyCelConditions1.xlsm
    21.7 KB · Affichages: 1

KIM

XLDnaute Accro
Bonjour le forum et les ami(e)s,
Je reviens vers vous car je n'arrive pas à faire fonctionner depuis quelques jours ma macro car la ligne :
VB:
If Not Intersect(Target, Range("H15:H17")) Is Nothing Then
ne réagit pas à cause des cellules H15:H17 qui contiennent des formules.
Comment modifier cette ligne pour réagir car les résultats des formules sont modifiés?
voir fichier ci-joint
Code:
If Not Intersect(Target, Range("H15:H17")) Is Nothing Then  'ce que nous observons
  i = Target.Row
Stop
    For Each c In [I15:I17].SpecialCells(xlCellTypeVisible)
        If c.Value = 1 Then
            Range("L5").Value = Target.Value
            Range("M5").Value = c.Offset(0, -6)
            Target.Offset(0, 4) = Target.Value
            Range("M" & i).Value = Target.Value
            
        End If
    Next c
End If
Merci de votre aide et de votre retour
KIM
 

Pièces jointes

  • CopyCelConditions1.xlsm
    22.8 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kim,
N'ayant pas compris la logique de votre macro, je l'ai inhibé.
Et dans Cotation et Fournisseur, j'ai mis :
VB:
Cotation :    =MIN(INDIRECT("H"&EQUIV(E5;A:A;0)+1&":"&"H"&EQUIV(E5;A:A;0)+3))
Fournisseur : =INDEX(INDIRECT("B"&EQUIV(E5;A:A;0)+1&":"&"B"&EQUIV(E5;A:A;0)+3);EQUIV(L5;(INDIRECT("H"&EQUIV(E5;A:A;0)+1&":"&"H"&EQUIV(E5;A:A;0)+3));0))
Voir en PJ.
 

Pièces jointes

  • CopyCelConditions1.xlsm
    19.5 KB · Affichages: 5

KIM

XLDnaute Accro
Bonjour Sylvanu,
Merci beaucoup pour votre retour,
Mon problème c'est que je souhaite récupérer Cotation et fournisseur via du vba dans Worksheet_Change,
car il y a possibilité de négocier le coût et de saisir le coût négocié dans les cellules du 1er cadre.
Est-ce possible?
Merci encore
KIM
 

KIM

XLDnaute Accro
Re Bonjour Sylvanu et le forum,
Je vais suivre votre conseil et adopter vos formules.
Pour mes lanternes, pour surveiller les modifications des valeurs des cellules H15:H17, avez-vous une idée pourquoi cette ligne de code ne fonctionne pas quand il y a des formules dans les cellules H15:H17? et comment y remedier pour surveiller des cellules qui contiennent des formules ?
VB:
If Not Intersect(Target, Range("H15:H17")) Is Nothing Then
Merci encore
KIM
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Vous devriez supprimer le Stop. Il stoppe la macro en cours.
De plus la macro change ne se déclenche que sur un clic dans la cellule, pas sur un changement de valeur.
Vous devriez déclencher sur les cellules que vous modifiez : [B15:G17]
Testez en l'état en cliquant sur H15:H17 après modification d'une valeur ça marche.
 

KIM

XLDnaute Accro
Re,
Merci Sylvanu et le forum,
Je vais appliquer vos formules car le tableau de simulation contient des formules et le suivi concerne bien les cellules H15:H17.
Vos formules fonctionnent bien. Pour les adapter à d'autres contextes, pouvez-vous m'explique le +1 et +3 dans tes 2 formules Citation et fournisseur?

Merci encore
KIM
 

Discussions similaires

Statistiques des forums

Discussions
312 099
Messages
2 085 282
Membres
102 848
dernier inscrit
boum