Gestion de salon de coiffure

Bonjour
j'ai regler le premier probleme il me reste :
jai 2 bouton ajouter et enregistrer

j'ai deux feuilles : feuille liste employe et feuille tableaux recettes
dans userforme1 j'ai un combobox1 de la liste employer : feuille liste employe
j'ai aussi un textbox9 qui est employe mais dans la feuille tableaux recettes

quand je rajoute un enregistrement les donnees vont sur la feuille mais quand tu reclik sur enregistrement il reenregistre
je veux qu'il enregistre une seul fois.

je veux aussi que le nouvel enregistrement de ma tectbox9 va aussi sur le combobox1 sans doublons

Private Sub ajouter_Click()
Dim totalPU As Double

' Ajout dans la ListBox1
With ListBox1
.AddItem TextBox4.Value ' Date
.List(.ListCount - 1, 1) = TextBox8.Value ' Coupe

.List(.ListCount - 1, 3) = TextBox9.Value ' Employé
.List(.ListCount - 1, 4) = TextBox6.Value ' Remise

End With

' Réinitialisation des champs après ajout pour la prochaine saisie
TextBox4.Value = ""
TextBox6.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""

TextBox4.SetFocus ' Remet le curseur sur le premier champEnd Sub
End Sub

Private Sub enregistrer_Click()
On Error GoTo ErreurSaisie

' Désactive le bouton pour éviter clics multiples
CommandButton17.Enabled = False

Dim ws As Worksheet
Dim ligne As Long

Set ws = ThisWorkbook.Sheets("tableaux recettes")

' Vérifie les champs obligatoires (Date, Coupe, Employé)
If Trim(TextBox4.Value) = "" Or Trim(TextBox8.Value) = "" Or Trim(TextBox9.Value) = "" Then
MsgBox "Veuillez remplir la date, la coupe et l'employé.", vbExclamation
GoTo Fin
End If

' Trouve la prochaine ligne vide à partir de la ligne 6
ligne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
If ligne < 6 Then ligne = 6

' Enregistre les données saisies
With ws
.Cells(ligne, 1).Value = TextBox4.Value ' Date
.Cells(ligne, 2).Value = TextBox8.Value ' Coupe
.Cells(ligne, 3).Value = TextBox5.Value ' PU (peut être vide)
.Cells(ligne, 4).Value = TextBox9.Value ' Employé
.Cells(ligne, 5).Value = CDbl(TextBox6.Value) / 100
.Cells(ligne, 5).NumberFormat = "0%"
.Cells(ligne, 6).Value = TextBox7.Value ' Total PU (peut être vide)
End With

' Ajoute l'employé si non présent dans "liste employé"
Dim wsEmploye As Worksheet
Dim existe As Boolean
Dim i As Long
Set wsEmploye = ThisWorkbook.Sheets("liste employe")

existe = False
For i = 6 To wsEmploye.Cells(wsEmploye.Rows.Count, 1).End(xlUp).Row
If wsEmploye.Cells(i, 1).Value = TextBox9.Value Then
existe = True
Exit For
End If
Next i

If Not existe Then
wsEmploye.Cells(wsEmploye.Cells(wsEmploye.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = TextBox9.Value
End If

' Réinitialise les champs via bouton Ajouter
CommandButton11_Click

Fin:
' Réactive le bouton
CommandButton17.Enabled = True
Exit Sub

ErreurSaisie:
MsgBox "Erreur lors de l'enregistrement.", vbCritical
Resume Fin
End Sub

Bonjour,

Cela ne sert à rien de recréer une discussion tu aurais pu continuer sur la même

Voir ICI

Slts

re-bonjour,

1) quand on présente un bout de code on utilise le bouton

image

2) un code tel que le tien est délcat a interpréter sans le fichier associé

Comme je te l'ai déjà dit, anonymise donc ton fichier, voir la chartre du forum et en particulier

Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Rechercher des sujets similaires à "gestion salon coiffure"