Microsoft 365 condition selon résultat d'une formule

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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+
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 🙂
 
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

Bonjour Gérard, laurent950, le forum,

Merci Gérard 🙂
Tout simplement génial comme d'habitude 😉
Mes explications étaient plutôt vaseuses. Je n'arrivais pas à mieux expliquer et tu as tout compris.
Toujours au top 🙂
Merci Gérard.
Bon dimanche à toi, à toutes et à tous,
lionel,
 
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 😡

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

Dernière édition:
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

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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
37
Affichages
3 K
Retour