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 Subcette 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 Subl'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 SubA+
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
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