Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 msgbox suivant valeur d'une formule

François14850

XLDnaute Nouveau
Bonsoir,

dans un classeur de gestion de pièces détachées, j'aimerais que lorsque l'utilisateur rentre un modèle, un msgbox lui indique ce qu'il doit faire suivant si ce modèle est connu comme obsolète ou récent.

Si dans ma base de données, je rajoute une colonne qui indique 0 si obsolète et 1 si récent... J'imagine que je dois pouvoir ( tout est possible avec excel! ) faire une formule du genre si - recherchev entre le modèle dans la combobox et la bdd - soit 0 soit 1, cacher cela dans la feuille du classeur et trouver le bon code vba qui envoie le msgbox suivant si le résultat de la formule est 0 ou 1?

Merci de me dire si mon raisonnement parait ok ou si je dois aller me coucher et nous sommes que lundi!!!!!!!

Je peut joindre mon fichier au besoin !

D'avance merci et bonne semaine !
 

François14850

XLDnaute Nouveau
Bonsoir Deadpool_CC,

pour l'instant, j'ai décomposé ma formule



Le modèle repris dans la combobox s'affiche dans une cellule cachée en F6. Du coup, K5 =F6
En K7, la recherche V m'indique si 0 ou 1.
Rien qu'en me relisant, je ne sait pas pourquoi je fais repointer une cellule dans une autre alors que j'aurais pu faire ma recherchev depuis F6 !!!!!!!!!!!!!! Bon, c'est lundi !!!!!!!!!!!!!!!!!
Comme je débute en VBA, c'est la ou j'ai du mal à voir comment déclencher la msgbox suivant la valeur de K7 !
 

Deadpool_CC

XLDnaute Accro
Moi ton fichier plante car "[_user]" ... passe pas chez moi ... ??
mais déjà quand tu fais un rechercheV il faut que la 1ère colonne de ta matrice de recherche soit triée [Bonne pratique]
après tente de mettre le msgbox directement dans ton code VBA de la feuille Opérations

j'ai pas pu tester mais j'aurais tenté un truc du genre :
VB:
Private Sub Liste_mod_Change()

'charger modèles dans zone critères
Liste_piece.Clear


If (Liste_mod.Value <> "Sélectionner un modèle") Then
'-----------------------
    If Application.WorksheetFunction.VLookup(Liste_mod.Value, Worksheets("BDD PRODUITS").Range("B1:F936"), 5, False) Then
        MsgBox "OUPPS" 'et le reste de ton code
    End If
'-----------------------
    Sheets("Opérations").Range("F6").Value = Liste_mod.Value
    charger_pieces
Else
    Sheets("Opérations").Range("F6").Value = ""

End If

Sheets("Opérations").Range("G6").Value = ""

End Sub

je te laisse adapter le code selon ce que tu veut faire vis à vis des autres champs.
 

François14850

XLDnaute Nouveau
Bonjour,

j'ai tenté un truc qui fonctionne mais tourne en boucle !!!!!

VB:
Private Sub Worksheet_Change(ByVal R As Range)


' Msgbox si catalogue ou non

Set R = Range("K7")
Select Case R
Case Is = 0
    MsgBox "N'est plus au catalogue, ne pas mettre le code CANNIBAL dans le rapport technique"

Case Else
    MsgBox "Est au catalogue MCO, merci de mettre le code CANNIBAL dans le rapport technique"
    
End Select

End Sub
Code:

Quelqu'un pourrait m'indiquer mon erreur svp?!!!!
 

Discussions similaires

Réponses
7
Affichages
351
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…