Bonjour le forum,
je suis un petit nouveau dans la programmation en vba ; j'essai d'apprendre mais c'est un boulot de fou !
je vous expose mon problème : j'ai fait un userform avec un formulaire de saisie pour enregistrer des noms avec un code spécifique,
1) je veux éviter les doublons
2) si y a doublon que sa apparaissent au niveau du formulaire dès que je rentre le nomprénom; adresse
3) même si je rentre le nom je veux que son code apparaisse dans la feuille tbc hebdo
4) pour que un nom est plusieurs BL
je vous joint mon fichier ainsi que mon code vba :
'***********************************
'Procédure permettant d'ajouter un nouvel enregistrement
'dans la Base clients
'***********************************
Private Sub btnajout_Click()
Sheets("Base clients").Activate
Range("B1").Select
Selection.End(xlDown).Select ' on se positionne sur la dernière ligne non vide
Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
ActiveCell = Cbotype
ActiveCell.Offset(0, 1).Value = Cbocivilité
ActiveCell.Offset(0, 2).Value = txtnom
ActiveCell.Offset(0, 3).Value = txtadresse
ActiveCell.Offset(0, 4).Value = txtcp
ActiveCell.Offset(0, 5).Value = txtville
ActiveCell.Offset(0, 6).Value = txtfixe
ActiveCell.Offset(0, 7).Value = txtmobile
ActiveCell.Offset(0, 8).Value = txtsite
ActiveCell.Offset(0, 9).Value = txtmail
'on test si l'enregistrement est le premier de la table
Application.ScreenUpdating = False
Range("a1").Select
Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Dim Codeprec, Code
Codeprec = ActiveCell.Offset(-1, 0).Value
Code = Right(Codeprec, 10)
ActiveCell.Offset(0, 0).Select
ActiveCell = "C" & Code + 1
MsgBox ("code client : " & ActiveCell)
Application.ScreenUpdating = True
Sheets("TBC HEBDOMADAIRE").Activate
Range("b1").Select
Selection.End(xlDown).Select ' on se positionne sur la dernière ligne non vide
Selection.Offset(1, 0).Select 'on se décale d'une ligne vers le bas
ActiveCell = Cbocommercial.Value
ActiveCell.Offset(0, 1).Value = Format(txtdate, "DD/MM/YYYY")
ActiveCell.Offset(0, 2).Value = Format(txtmontant, "0000")
ActiveCell.Offset(0, 3).Value = Cboproduits
'on test si l'enregistrement est le premier de la table
Application.ScreenUpdating = False
Range("a1").Select
Do While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Loop
Dim Codeclientsprec, Codeclients
Codeclientsprec = ActiveCell.Offset(-1, 0).Value
Codeclients = Right(Codeclientsprec, 10)
ActiveCell.Offset(0, 0).Select
ActiveCell = "C" & Codeclients + 1