Msgbox personnalisables sous forme de tableau

Bonjour à tous,

Acutellement, j'utilise un code fonctionnel qui permet d'afficher un msgbox comportant les remarques liées à la commande encodée.

Malheureusement, si je dois ajouter une remarque spécifique pour une commande précise, je dois passer par une ligne de code VBA.

Ce fichier sera à l'avenir utilisé par une personne n'ayant aucune connaissance pratique en VBA.

Je souhaiterais pouvoir dès lors passer par un tableau pratique qui permettrait d'ajouter à volonté des remarques pour telle ou telle commande en particulier.

Exemples :

Commande 1 -> msgbox avec remarque 1

Commande 2 -> msgbox avec remarque 2

Commande 3 -> pas de remarque sur cette commande donc pas de msgbox

Commande 4 -> msgbox avec remarque 4

Commande 5 -> msgbox avec remarque 5

etc...

lorsque je tape commande 2 -> le msgbox de la commande 2 apparait à l'écran.

Merci d'avance pour votre aide si précieuse

Bonne journée à tous

Vincent

23test.xlsm (22.92 Ko)

Bonjour,

Essaie comme cela

Private Sub Worksheet_change(ByVal Target As Range)
Dim C As Range
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, Range("A2:A5000")) Is Nothing Then
        Set C = Worksheets("action").Columns(1).Find(Target, , xlValues, xlWhole)
        If Not C Is Nothing Then
            MsgBox C.Offset(0, 1) & vbCr & C.Offset(0, 2) & vbCr & C.Offset(0, 3)
        End If
    End If
End Sub

A+

Merci Frangy !

Ça fonctionne parfaitement avec le fichier joint mais en appliquant ce code dans mon fichier Excel, je rencontre un problème.

Le msgbox s'affiche correctement avec ses remarques mais en supprimant le numéro de commande (erreur de frappe par exemple), un msgbox vide apparait.

Est-ce normal ?

Merci d'avance

Essaie avec

If Not C Is Nothing And C <> "" Then

A+

Mince, ça ne fonctionne toujours pas

En fait, si j'encode en A2 un numéro de commande qui n'est pas repris dans le sheet action, vba plante (erreur 91) : exemple "111111"

Si le numéro existe, pas de problème.

31test.xlsm (23.47 Ko)

Bonjour,

Private Sub Worksheet_change(ByVal Target As Range)
Dim C As Range
    If Target.Count > 1 Then Exit Sub
    If Not Application.Intersect(Target, Range("A2:A5000")) Is Nothing Then
        Set C = Worksheets("action").Columns(1).Find(Target, , xlValues, xlWhole)
        If Not C Is Nothing Then
            If C <> "" Then
                MsgBox C.Offset(0, 1) & vbCr & C.Offset(0, 2) & vbCr & C.Offset(0, 3)
            End If
        Else
            Target.Select
            MsgBox "Commande inexistante", vbCritical
            Application.EnableEvents = False
            Target = ""
            Application.EnableEvents = True
        End If
    End If
End Sub

A+

Rechercher des sujets similaires à "msgbox personnalisables forme tableau"