Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Doublon client USF

  • Initiateur de la discussion Initiateur de la discussion RONIBO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RONIBO

XLDnaute Impliqué
Bonsoir le forum,

J'aimerais modifier un petit truck dans l'usf (NouveauClient)

J'aimerais qu'un msgbox (question) apparaisse lorsque j'ajoute un nouveau client au même nom existe
msgbox "Ce client existe déjà voulez-vous le remplacer ?"

Si OUI : écraser sinon NON pour annuler

Deuxième petit problème :

Dans l'usf (ModifierClient), lorsque je l'ouvre, des l'ouverture il me sélectionne le combobox (CVille)
J'aimerais qui me sélectionne le textbox (TNom)

j'ai regardé dans les paramètre des tabindex mais j'ai pas réussi 🙁

Je vous mets mon fichier 🙂

Merci d'avance 🙂

a+

Ce lien n'existe plus
 
Re : Doublon client USF

Bonjour,

Tu peux ajouter ceci dans ton code :
'===========================
' ici ton code existant
'===========================
If Trim(Me.TNom) = "" Then
Me.TNom.BackColor = vbRed
MsgBox "Veuilez renseigner au moins le nom de la société", vbInformation, "Attention"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Clients")
DerLigne = .Range("A" & Rows.Count).End(xlUp).Row + 1
'====================================
' Ajoutes ceci
'====================================
For Each nom_cli In Sheets("Clients").Range("A4:A" & DerLigne)
If nom_cli = TNom.Text Then
rep = MsgBox("Le client existe déjà, le remplacer ?", vbInformation + vbYesNo, "Information")
If rep = vbNoThen
Exit Sub
End If
End If
Next
'======================================
'Fin de l'ajout et ton code reprend ensuite ...
'======================================
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
If Val(Ctrl.Tag) > 0 Then
If Val(Ctrl.Tag) = 3 Then
.Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl & " " & CVille
Else
.Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl
End If

Pour ton deuxième soucis, tu ajoutes ceci dans l'userform initialise : TNom.SetFocus

Voilà 🙂

BàT.

John
 
Dernière édition:
Re : Doublon client USF

Bonjour John,

Merci pour ton code 🙂

Mais je bloque ici

For Each nom_cli In Sheets("Clients").Range("A4:A" & DerLigne)
Plus précisément sur nom_cli

Tu as une idée?

A+
 
Re : Doublon client USF

Tu bloques où ??
N'oublies pas de faire un dim nom_cli au début !!!! sinon ça coince vu que tu as option explicit !!!! et pareil pour rep !!!

BàT.

John
 
Re : Doublon client USF

Re,

Regarde s'que j'ai fais :

Code:
Private Sub BAjouter_Click()
Dim Ctrl As Control
   Dim DerLigne As Long
   Dim rep
Dim nom_cli
If Trim(Me.TNom) = "" Then
Me.TNom.BackColor = vbRed
MsgBox "Veuilez renseigner au moins le nom de la société", vbInformation, "Attention"
Exit Sub
End If
Application.ScreenUpdating = False
With Sheets("Clients")
DerLigne = .Range("A" & Rows.Count).End(xlUp).Row + 1
For Each nom_cli In Sheets("Clients").Range("A4:A" & DerLigne)
 If nom_cli = TNom.Text Then
    rep = MsgBox("Le client existe déjà, le remplacer ?", vbInformation + vbYesNo, "Information")
   If rep = vbNoThen
   Exit Sub
 End If
 End If
 Next
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
If Val(Ctrl.Tag) > 0 Then
If Val(Ctrl.Tag) = 3 Then
   .Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl & " " & CVille
Else
   .Cells(DerLigne, Val(Ctrl.Tag)) = Ctrl
End If
End If
End If
Next
Trier
   .Visible = xlSheetVisible
   .Copy
   .Visible = xlSheetVeryHidden
End With
With ActiveWorkbook
Application.DisplayAlerts = False
   .SaveAs Filename:=chemin & Fichier, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
   .Close
End With
Me.TNom.BackColor = vbWhite
Unload Me
End Sub

Et la je bloc sur
Code:
  If rep = vbNoThen

Pourtant j'ai avec le dim, comme tu m'as dit

A+
 
Re : Doublon client USF

Ah oui juste pensé à faire annuler en cas de doublon mais pas enregistrer si oui pour écrasement 🙁

Voilà ce que j'ai mis et ça marche :
For Each nom_cli In Sheets("Clients").Range("A4:A" & DerLigne)
If nom_cli = TNom.Text Then
rep = MsgBox("Le client existe déjà, le remplacer ?", vbInformation + vbYesNo, "Information")
If rep = vbNo Then
Exit Sub
Else
ligne = nom_cli.Row 'je récupére le n° de la ligne où se trouve le client déjà existant
Sheets("Clients").Cells(ligne, 2) = TAdresse
Sheets("Clients").Cells(ligne, 3) = TCodePostal & " " & CVille
Sheets("Clients").Cells(ligne, 4) = TNuméroTéléphone
Sheets("Clients").Cells(ligne, 5) = TEmail
Sheets("Clients").Visible = xlSheetVeryHidden
Unload Me
Exit Sub
End If
End If

BàT.

John
Next
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
5
Affichages
1 K
J
Réponses
2
Affichages
3 K
journeydo
J
E
Réponses
15
Affichages
4 K
D
Réponses
2
Affichages
730
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…