Microsoft 365 condition selon résultat d'une formule

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir à toutes et à tous,
J'espère que vous allez bien.

Je bute encore sur un code que je n'arrive pas à faire malgré mes essais et recherches.

Dans le fichier test joint, je voudrais que :
- si le résultat du code ActiveCell = "=LOOKUP(RC[-1],trouve)" de la cellule active (D5 ou D13 par exemple) = stop,
- que le mot stop soit écrit dans la dellule D3
mais que le contenu de ma cellule active ne soit pas modifié.

Auriez-vous la solution ?
Un grand merci par avance :)
Je vous souhaite une bonne fin de journée,
Amicalement,
lionel,
 

Pièces jointes

  • test_siTrouve.xlsm
    16.6 KB · Affichages: 11
Solution
Bonjour Lionel, laurent950,

Voyez le fichier joint et cette macro dans le code de la 2ème feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D3] = ""
If ActiveCell.Column > 1 Then If IsNumeric(Evaluate("LN(VLOOKUP(" & ActiveCell(1, 0).Address & ",trouve,2,0)=""stop"")")) Then [D3] = "stop"
End Sub
A+

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour laurent950,

Merci à toi d'être là :)
Je ne sais pas comment expliquer, je vais essayer :
"- si le résultat du code ActiveCell = "=LOOKUP(RC[-1],trouve)" de la cellule active (D5 ou D13 par exemple) = stop,"
je voudrais coder : si le N° de la cellule à gauche de la cellule cliquée (active) donne en recherche le résultat "stop", on écrit stop dans la cellule D3.
lol, je ne sais pas mieux dire
Je vais voir comment être plus clair.
lionel :)
 

job75

XLDnaute Barbatruc
Bonjour Lionel, laurent950,

Voyez le fichier joint et cette macro dans le code de la 2ème feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D3] = ""
If ActiveCell.Column > 1 Then If IsNumeric(Evaluate("LN(VLOOKUP(" & ActiveCell(1, 0).Address & ",trouve,2,0)=""stop"")")) Then [D3] = "stop"
End Sub
A+
 

Pièces jointes

  • test_siTrouve(1).xlsm
    18.8 KB · Affichages: 6

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-bonjour Gérard,

Je confirme ton code fonctionne super bien mais ... lol
J'aurais du faire un fichier test correspondant à mon fichier de travail pour pouvoir l'intégrer !

Je n'arrive pas à modifier le code pour que ça fonctionne et je n'arrive pas comprendre pourquoi :mad:

Voudrais-tu me donner encore un p'tit coup de main et ça me permettrait de comprendre ?
Je joins le fichier test auquel j'ai ajouté 2 feuilles qui correspondent exactement à mon fichier.
Base2 = base de recherche,
Feuil4 = je dois cliquer dans la colonne G et je recherche les n° de la colonne J
Un grand merci encore une fois :)
Je continue à chercher lol
lionel,
 

Pièces jointes

  • test_siTrouve(1).xlsm
    29.9 KB · Affichages: 4
Dernière édition:

job75

XLDnaute Barbatruc
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[D3] = IIf(IsNumeric(Evaluate("LN(VLOOKUP(" & ActiveCell(1, 4).Address & ",trouve_base2,10,0)=""stop"")")), "stop", "")
End Sub
J'ai corrigé la défintion de trouve_base2 qui doit commencer en colonne E.
 

Pièces jointes

  • test_siTrouve(2).xlsm
    31.1 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard :)
Pas de souci, pour le beug : nous ne cliquons pour ce code que dans les colonnes G ou H
voici les codes finalisés pour les 2 colonnes dans ma p'tite usine lol :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range([g7], Cells(Rows.Count, "g").End(xlUp))) Is Nothing And Target.Count = 1 Then
If IsNumeric(Evaluate("LN(VLOOKUP(" & ActiveCell(1, 4).Address & ",OngletsAFaire,10,0)=""stop"")")) Then
        Application.EnableEvents = False
        MsgBox ("Ne plus appeler pour ce Client terminé !" & Chr(10) & "Vous pouvez si secteur OK" & Chr(10) & "affecter un autre N° Client")
        CommandBars("Cell").Enabled = False
        Cells(ActiveCell.Row, 1).Select
        Application.EnableEvents = True
        Exit Sub
            Else
            Application.EnableEvents = False
            Application.ScreenUpdating = False
        End If
end if
Code:
If Not Intersect(Target, Range([h7], Cells(Rows.Count, "h").End(xlUp))) Is Nothing And Target.Count = 1 Then
If IsNumeric(Evaluate("LN(VLOOKUP(" & ActiveCell(1, 3).Address & ",OngletsAFaire,10,0)=""stop"")")) Then
        Application.EnableEvents = False
        MsgBox ("Ne plus appeler pour ce Client terminé !" & Chr(10) & "Vous pouvez si secteur OK" & Chr(10) & "affecter un autre N° Client")
        CommandBars("Cell").Enabled = False
        Cells(ActiveCell.Row, 1).Select
        Application.EnableEvents = True
        Exit Sub
            Else
            Application.EnableEvents = False
            Application.ScreenUpdating = False
        End If
end if

ça fonctionne nickel
Dans tous les cas, nous ne cliquons jamais après la colonne Z.

Encore un super merci à toi :)
lionel,
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 398
Messages
2 088 065
Membres
103 711
dernier inscrit
amin Saadaoui