Msgbox userform

Bonjour,

Je suis en train de travailler sur un fichier excel pour gerer des entrées et sorties a l'aide de code barres

sur une feuille il y a un bouton qui ouvre un UserForm ou l'on tape le code barre. Ce dernier s'inscrit automatiquement sur les lignes de la colonne A. Ensuite un code sur la feuille detecte les boublon et les effaces.

J'aimerais qu'un Userform ou MsgBox indique qu'un doublon a ete tape, ppour cela pas de souci seulement si une nouvelle entrée apparait et qu'elle n'est pas en doublon j'aimerais avoir un autre userform ou msgbox afin de dire bienvenue

Voici le code vba de ma feuille:

Private Sub Worksheet_Change(ByVal Target As Range)

If flag Then Exit Sub

If Not Application.Intersect(Target, Columns("a")) Is Nothing Then

If Target.Count > 1 Then Exit Sub

If Application.CountIf(Range("a1:a200"), Target) > 1 Then

flag = True

Target.ClearContents

UserForm2.Show

flag = False

End If

End If

End Sub

Merci de votre aide.

Salut,

Je veux bien regarder mais à mon avis on a pas l'ensemble de ton code ?

Est-ce possible de nous mettre une copie du fichier Excel que l'on voit aussi ton organisation de données ?

Girodo

Bonjour à tous,

une solution possible avec userform

Private Sub Worksheet_Change(ByVal Target As Range)

If Flag Then Exit Sub
Application.EnableEvents = False
If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    If Application.CountIf(Range("a1:a200"), Target) > 1 Then
        Flag = True
        UserForm2.Show
        Target.ClearContents
    Else
        UserForm2.Show
    End If
End If
Application.EnableEvents = True
Flag = False
End Sub

cette solution nécessite de déclarer la variable Flag dans un module standard (Public Flag As Boolean)

Dans l'userform un Label avec:

Private Sub UserForm_Initialize()
If Flag Then
    Label1.Caption = "Attention Doublon"
Else
    Label1.Caption = "Bienvenue"
End If
End Sub

l'autre solution avec MsgBox

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
    If Target.Count > 1 Then Exit Sub
    If Application.CountIf(Range("a1:a200"), Target) > 1 Then
        Flag = True
       MsgBox "Attention Doublon"
        Target.ClearContents
    Else
        MsgBox "Bienvenue"
    End If
End If
Application.EnableEvents = True
End Sub

A+

Re Merci à tous j'ai pris la première solution de AlgoPlus et cela fonctionne merci Beaucoup.

Je ne suis pas programmeur mais juste passionné et je bûche sur pas mal de choses. j'ai mis mon fichiers d'essai et un .txt d' explication. Je ne vous demande pas de faire la programmation de mon fichier car j'aime bien comprendre mais si vous pouvez encore m'aider un peu, je suis preneur.

En tout cas merci a vous de votre sympathie

Voici les fichiers

21explication.txt (1.23 Ko)

même si vous modifiez les pages cela n'est pas grave car les données sont fictives pour le moment

Autre chose de bizarre, lorsque je rentre un code à la main cela fonctionne correctement mais lorsque j'utilise mon appli tel pour scanner un code, ce dernier s'inscrit dans excel mais les userform ne s'affichent pas.

Merci a vous

Rechercher des sujets similaires à "msgbox userform"