XL 2010 recherche valeur sur deux variables

IMRANE

XLDnaute Occasionnel
Bonjour le forum
je cherche une valeur lie a deux variable sur un tableau
Pour bien expliquer mon cas j ai mis une pièce joint pour éclaircir ma question
et merci
 

Pièces jointes

  • 1RECHRECHE VALEUR.xlsm
    10.5 KB · Affichages: 3

Lolote83

XLDnaute Barbatruc
Bonjour @IMRANE,

Pas sur d'avoir tout compris bien qu'une PJ a été jointe
Dans l'exemple donné, tu souhaites (si j'ai bien compris) trouver ce qui correspond à :
- Client A et Reference 1 (donc dans ton exemple cela sera la cellule H5)
Si tu veux Client E et Référence 6 cela sera alors cellule L10
Si tu veux Client G et Référence 13 cela sera alors cellule N17
C'est bien ça ???? Si NON, besoin de plus d'explications.

Merci du retour
@+ Lolote83
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Imrane,
Si dans votre fichier les données à trouvées sont celles en jaune, alors il suffit que du nom client pour la trouver puisque le même nombre en jaune est le même quelque soit la référence.
Donc je suis parti sur le fait qu'on doit trouver une valeur à l'intersection du client et de la référence.
Si c'est le cas, essayez :
VB:
=INDEX($H$5:$O$19;EQUIV($D$11;$G$5:$G$19;0);EQUIV($D$10;$H$4:$O$4;0))
 

Pièces jointes

  • 1RECHRECHE VALEUR.xlsm
    11.7 KB · Affichages: 1

Lolote83

XLDnaute Barbatruc
Bonjour @sylvanu
J'étais effectivement parti sur cette hypothèse mais j'attendais le retour de @IMRANE pour confirmation.
Bon puisque tu l'as fait et que je l'avais de mon coté, je livre quand même.
J'y ai rajouté une MFC et liste déroulante pour le choix des clients et références
@+ Lolote83
 

Pièces jointes

  • Copie de IMRANE - Recherche valeur.xlsm
    14.2 KB · Affichages: 2
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re bonjour,
1711033917386.png

Tu ne veux pas plutôt parler de la cellule D12 car en D11, il y a la liste des référence.
C'est bien ça ????

Voici donc un fichier en retour avec une MFC (Blanc/Rouge) si valeur 0

@+ Lolote83
 

Pièces jointes

  • Copie de IMRANE - Recherche valeur.xlsm
    14.3 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ avec cette macro :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [D10:D11]) Is Nothing Then
        Calculate
        If [E11] = 0 Then MsgBox " Attention, valeur nulle."
    End If
Fin:
End Sub
Elle s'exécute automatiquement lorsqu'on change une valeur dans D10 ou D11.
 

Pièces jointes

  • Copie de IMRANE - Recherche valeur (1).xlsm
    19.9 KB · Affichages: 1

IMRANE

XLDnaute Occasionnel
Bonjour le forum , sylvanu
Merci pour votre aide précieux
J ai juste un problème , la feuille dont je veux intégrer ce code est pleine de codes VBA
je n ai pas réussis a l exécuter :
Le code que je veux c est un MsgBox " tres simple ( si la cellule P15 >0 MESSAGE INFORMATION " "ATTENTION" ) mais ou dois je le mettre dans tous ces codes c est ça mon problème maintenant
si vous pouvez m aider SVP ?


VB:
Dim a()
Private Sub ComboBox2_Change()
    If Me.ComboBox2 <> "" And IsError(Application.Match(Me.ComboBox2, a, 0)) Then
        Me.ComboBox2.List = Filter(a, Me.ComboBox2.Text, True, vbTextCompare)
        Me.ComboBox2.DropDown
    End If
    ActiveCell.Value = Me.ComboBox2
End Sub
Private Sub ComboBox3_Change()
    ActiveCell.Value = Me.ComboBox3
End Sub
Private Sub ComboBox2_DblClick(ByVal Cancel As msforms.ReturnBoolean)
    Me.ComboBox2.List = a
    Me.ComboBox2.Activate
    Me.ComboBox2.DropDown
End Sub


Private Sub CommandButton2_Click()
    UserForm3.Show
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Intersect([H7:H35], Target) Is Nothing Then
        Application.OnKey Key:="~", procedure:="retour_colonneC"
    End If

    If Not Intersect([H4:H5], Target) Is Nothing Then
        Application.OnKey Key:="~", procedure:="retour_colonneC2"
    End If

    If Not Intersect([C7:C35], Target) Is Nothing And Target.Count = 1 Then
        a = Application.Transpose(Sheets("bdd").Range("liste"))
        Me.ComboBox2.List = a
        Me.ComboBox2.Height = Target.Height + 3
        Me.ComboBox2.Width = Target.Width
        Me.ComboBox2.Top = Target.Top
        Me.ComboBox2.Left = Target.Left
        Me.ComboBox2 = Target
        Me.ComboBox2.Visible = True
        Me.ComboBox2.Activate
        'Me.ComboBox1.DropDown    ' ouverture automatique au clic dans la cellule (optionel)
    Else
        Me.ComboBox2.Visible = False
    End If
    If Not Intersect([d7:d35], Target) Is Nothing And Target.Count = 1 Then
        b = Range("liste_depots_bon_livraison")
        Me.ComboBox3.List = b
        Me.ComboBox3.Height = Target.Height + 3
        Me.ComboBox3.Width = Target.Width
        Me.ComboBox3.Top = Target.Top
        Me.ComboBox3.Left = Target.Left
        Me.ComboBox3 = Target
        Me.ComboBox3.Visible = True
        Me.ComboBox3.Activate
        'Me.ComboBox1.DropDown     'ouverture automatique au clic dans la cellule (optionel)
    Else
        Me.ComboBox3.Visible = False
    End If

    If Not Intersect(Target, Worksheets("LIVRAISON").Range("C59:D64")) Is Nothing Then
       Worksheets("LIVRAISON").Range("S2").Select
    End If
End Sub
' code pour avertirtissement de doublon dans la colonne "C"

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim Colonne As Integer
    Dim Adresse As String

    'On sort si plus d'une cellule a été modifiée
    If Target.Count > 1 Then Exit Sub
    'On sort si la cellule modifiée est vide
    If Target.Value = "" Then Exit Sub

    'Définit la colonne à vérifier (1=Colonne A, 2=colonne B ...etc...)
    Colonne = 3

    'Vérifie si c'est la colonne cible a été modifiée
    If Target.Column = Colonne Then

        'Recherche si la nouvelle donnée existe déjà dans la colonne.
        Adresse = Columns(Colonne).Find(What:=Target.Value, After:=Target.Offset(1, 0), LookAt:=xlWhole, _
                                        SearchDirection:=xlNext).Address

        'Si l'adresse de cellule trouvée ne correspond pas à la cellule modifiée, cela
        'signifie qu'il y a un doublon dans la colonne.
        If Adresse <> Target.Address Then

            MsgBox "La Réference '" & Target & "' Déjà saisie ", vbExclamation

        End If
    End If

End Sub
 
Dernière modification par un modérateur:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
1- Utilisez la balise </> à droite de l'icone GIF pour le code c'est plus lisible.
2- Vous pouvez mettre cette ligne de code :
VB:
If [E11] = 0 Then MsgBox " Attention, valeur nulle."
Là où vous en avez besoin.
Par ex après ou dans "Private Sub Worksheet_SelectionChange(ByVal Target As Range)"
Là où vous désirez que le contrôle se fasse.
 

Statistiques des forums

Discussions
313 296
Messages
2 096 914
Membres
106 786
dernier inscrit
Mgordat