OVH Cloud OVH Cloud

Pas de doublons

2 réponses
Avatar
François
Bonsoir,

Avec l'aide d'un userform, je veux ajouter des données dans mon tableau avec
des textbox (1 à 4). Mon problème est que cela ajoute des doublons. Comment
écrire le code pour qu'il n'y ait pas ces doublons ?

Je peux poster un fichier si nécessaire pour vous aider.

Merci

Private Sub CmdValider_Click()
Dim An As Integer
Dim Tblo As Variant, Ligne As Long
Dim A As Variant
Dim S As String, Pattern As String
Dim Num As Variant

With Sheets("Inventaire")
Ligne = .Range("a65536").End(xlUp).Row
Tblo = .Range("a2:c" & Ligne)
If Me.ComboBox1.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End If
If Me.ComboBox2.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End
If Me.ComboBox3.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End

Application.EnableEvents = True
.Range("a" & Ligne) = Me.ComboBox1
.Range("b" & Ligne) = Me.ComboBox2
.Range("c" & Ligne) = Me.ComboBox3
.Range("d" & Ligne) = Me.ListBox1
.Range("e" & Ligne) = Me.ListBox2
.Range("f" & Ligne) = Me.ListBox3
.Range("g" & Ligne) = Me.ListBox4
.Range("g" & Ligne).Offset(, 1) = Trim(TextBox1)
.Range("g" & Ligne).Offset(, 2) = Trim(TextBox2)
.Range("g" & Ligne).Offset(, 3) = Trim(TextBox3)
Application.EnableEvents = False
End If
End With

End Sub

François

2 réponses

Avatar
Daniel
Bonjour.
Tu veux dire des doublons dans une colonne ou sur la ligne complète ?
Cordialement.
Daniel
"François" a écrit dans le message de news:
vEtgf.11842$
Bonsoir,

Avec l'aide d'un userform, je veux ajouter des données dans mon tableau
avec des textbox (1 à 4). Mon problème est que cela ajoute des doublons.
Comment écrire le code pour qu'il n'y ait pas ces doublons ?

Je peux poster un fichier si nécessaire pour vous aider.

Merci

Private Sub CmdValider_Click()
Dim An As Integer
Dim Tblo As Variant, Ligne As Long
Dim A As Variant
Dim S As String, Pattern As String
Dim Num As Variant

With Sheets("Inventaire")
Ligne = .Range("a65536").End(xlUp).Row
Tblo = .Range("a2:c" & Ligne)
If Me.ComboBox1.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End If
If Me.ComboBox2.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End
If Me.ComboBox3.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End

Application.EnableEvents = True
.Range("a" & Ligne) = Me.ComboBox1
.Range("b" & Ligne) = Me.ComboBox2
.Range("c" & Ligne) = Me.ComboBox3
.Range("d" & Ligne) = Me.ListBox1
.Range("e" & Ligne) = Me.ListBox2
.Range("f" & Ligne) = Me.ListBox3
.Range("g" & Ligne) = Me.ListBox4
.Range("g" & Ligne).Offset(, 1) = Trim(TextBox1)
.Range("g" & Ligne).Offset(, 2) = Trim(TextBox2)
.Range("g" & Ligne).Offset(, 3) = Trim(TextBox3)
Application.EnableEvents = False
End If
End With

End Sub

François




Avatar
michdenis
Bonjour François,

Un fichier exemple là :

http://cjoint.com/?lwp6rPfoXq


Salutations!



"François" a écrit dans le message de news: vEtgf.11842$
Bonsoir,

Avec l'aide d'un userform, je veux ajouter des données dans mon tableau avec
des textbox (1 à 4). Mon problème est que cela ajoute des doublons. Comment
écrire le code pour qu'il n'y ait pas ces doublons ?

Je peux poster un fichier si nécessaire pour vous aider.

Merci

Private Sub CmdValider_Click()
Dim An As Integer
Dim Tblo As Variant, Ligne As Long
Dim A As Variant
Dim S As String, Pattern As String
Dim Num As Variant

With Sheets("Inventaire")
Ligne = .Range("a65536").End(xlUp).Row
Tblo = .Range("a2:c" & Ligne)
If Me.ComboBox1.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End If
If Me.ComboBox2.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End
If Me.ComboBox3.ListIndex <> -1 Then
A = Application.Match(ComboBox1.Value, Tblo, 0)
If Not IsError(A) Then
Ligne = A + 1
End

Application.EnableEvents = True
.Range("a" & Ligne) = Me.ComboBox1
.Range("b" & Ligne) = Me.ComboBox2
.Range("c" & Ligne) = Me.ComboBox3
.Range("d" & Ligne) = Me.ListBox1
.Range("e" & Ligne) = Me.ListBox2
.Range("f" & Ligne) = Me.ListBox3
.Range("g" & Ligne) = Me.ListBox4
.Range("g" & Ligne).Offset(, 1) = Trim(TextBox1)
.Range("g" & Ligne).Offset(, 2) = Trim(TextBox2)
.Range("g" & Ligne).Offset(, 3) = Trim(TextBox3)
Application.EnableEvents = False
End If
End With

End Sub

François