Ajouter une valeur dans une liste si elle n'existe pas deja

yves03

XLDnaute Occasionnel
Bonsoir,
Je complète un fichier clients avec numéro client, adresse , ville , téléphone .....numéro de série et une gammes d'instruments.
Je fais ceci a l'aide d'un userform qui utilise des textbox et combobox pour le numéro de série et pour la gammes d'instruments
Lorsque je crée un nouveau client avec une nouvelle gamme j'aurais voulu rajouter cette nouvelle gamme à ma liste que si elle n'est pas déjà présente , si elle est présente, je ne rajoute pas la gamme , mais simplement les autres données de mon client.
Je ne sais pas comment vérifier a chaque fois que je crée une nouvelle ligne si cette gamme doit être rajouté à la liste ou pas
Merci d'avance pour m'indiquer une piste
 

yves03

XLDnaute Occasionnel
Re : Ajouter une valeur dans une liste si elle n'existe pas deja

Merci pour tareponse
Il faut que je regarde comment stocker dans un dictionnaire
Sinon voici la macro que j'utilise pour creer une ligne suplementaire
Pour l'instant j'ajoute systematiquement la gamme à la colonne AA meme si elle est deja presente, c'est ce que je voudrais eviter.
Merci d'avance

Private Sub CmbCréer_Click()
Sheets("Base").Unprotect Password:="050463"

' Je teste si le numéro de serie n'existe pas déja.
If Me.ComboSerie.ListIndex <> -1 Then
' si il existe , on ne peut pas le créer
MsgBox " On ne peut pas créer un systeme avec un numéro de série existant ", vbExclamation, "Erreur"
Exit Sub
End If


If Me.ComboSerie.Value = "" Then
MsgBox "Numéro de série manquant", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtClient.Value = "" Then
MsgBox " Veuillez indiquez le numéro client", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtName.Value = "" Then
MsgBox " Veuillez indiquez le nom du client", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtAdresse.Value = "" Then
MsgBox " Veuillez indiquez l'adresse", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtVille.Value = "" Then
MsgBox " Veuillez indiquez la ville", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtPostal.Value = "" Then
MsgBox " Veuillez indiquez le code postal", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.TxtTelephone.Value = "" Then
MsgBox " Veuillez indiquez le numéro de téléphone", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.ComboGammes.Value = "" Then
MsgBox " Veuillez indiquez la gamme", vbExclamation, "Attention !!"
Exit Sub
ElseIf Me.ComboContrat.Value = "" Then
MsgBox " Veuillez indiquez le type de contrat", vbExclamation, "Attention !!"
Exit Sub
End If


' si tout est ok je transfère les données dans la feuille base sur la première ligne vide
With Sheets("Base")
Derligne = .Range("A65536").End(xlUp).Row + 1
.Cells(Derligne, 2) = Me.TxtClient
.Cells(Derligne, 3) = Me.TxtName
.Cells(Derligne, 13) = Me.ComboSerie
.Cells(Derligne, 4) = Me.TxtAdresse
.Cells(Derligne, 5) = Me.TxtVille
.Cells(Derligne, 6) = Me.TxtPostal
.Cells(Derligne, 7) = Me.TxtTelephone
.Cells(Derligne, 11) = Me.ComboGammes
.Cells(Derligne, 14) = Me.ComboContrat
.Cells(Derligne - 1, 1).AutoFill .Cells(Derligne - 1, 1).Resize(2)

Derligne = .Range("AA65536").End(xlUp).Row + 1
.Cells(Derligne, 27) = Me.ComboGammes

Me.ComboSerie = ""
' j'envoi un message
MsgBox "Création effectuée", vbInformation, "INFO"
End With

Sheets("Base").Protect Password:="050463"
End Sub
 

yves03

XLDnaute Occasionnel
Re : Ajouter une valeur dans une liste si elle n'existe pas deja

Bonjour
Par exemple taper un numéro de série qui n'existe pas dans la base efface toutes les saisies effectuées dans l'userform.
Cela me parait surprenant.
de plus ton numéro de série n'est pas ajouté dans ta combo série.
il faudrait peut être faire comme pour la combogamme.

Je vais regarder tout ça
Merci pour ton aide
Bonnes fêtes de fin d'année
 

Discussions similaires

Réponses
8
Affichages
410
Réponses
3
Affichages
287