Valider userform apres remplissage derniere texbox
Bonsoir Dhany,
j'ai modifié comme indiqué, cela fonctionne bien maintenant.
Peux tu encore m'aider un peu
j'ai besoin de renomé l'onglet "mif" en "etat" mais lorsque je fait cela un tas d'erreur apparait debug sur debug je corrige le code en remplacant "mif" par "etat" mais des erreurs sont encores presentes comment cela est il possible?
Bonne soirée et encore merci pour ton aide precieuse !!!
Bonjour
avant if faut changer ton code vba
ex : ' With Worksheets("MIF")
par With Feuil5 ' Feuil5 = codename
Private Sub UserForm_Initialize()
Dim Derligne&, celX As Range
' With Worksheets("MIF")
With Feuil5
Derligne = .Cells(Rows.Count, 1).End(xlUp).Row
For Each celX In .Range("A2:A" & Derligne)
ComboBox1.AddItem celX
Next celX
End With
ComboBox1.ListIndex = 0
End Sub
Private Sub Combobox1_Change()
ligne = ComboBox1.ListIndex + 2
' With Worksheets("MIF").Cells(ligne, 2)
With Feuil5.Cells(ligne, 2)
TextBox5 = .Offset(, 2)
TextBox3 = .Offset(, 1)
TextBox4 = .Value
End With
End Sub
Private Sub B_valid2_Click()
Dim xQ%
' With Worksheets("MIF").Cells(ligne, 2)
With Feuil5.Cells(ligne, 2)
'--- Transfert Formulaire dans MIF
.Offset(, 3) = CDbl(Val(TextBox2))
.Offset(, 1) = UCase(TextBox3)
.Offset(, 4).FormulaR1C1 = "=SUM(RC[-4])-RC[-1]"
xQ = Val(.Offset(, 4)): .Value = xQ
TextBox4 = xQ: TextBox5 = Date: TextBox2 = ""
.Offset(, 1).Resize(, 2).ClearContents
End With
End Sub
Private Sub TextBox2_Change()
If Val(TextBox2) = 0 Then Exit Sub
Call B_valid2_Click: TextBox2 = "": TextBox3 = ""
TextBox5 = "": TextBox4 = ""
With ComboBox1: .Text = "": .SetFocus: End With
Application.ScreenUpdating = True
End Sub
Private Sub b_quitter2_Click()
Unload Me ': Worksheets("accueil").Select
Feuil1.Select
End SubA+
Maurice
Bonsoir depanmonpc,
Je te retourne ton fichier modifié :
J'ai renommé l'onglet "MIF" en "état" ; puis j'ai fait toutes les modifs nécessaires dans le code VBA, en commençant par celle-ci : dans le module "Indexation", j'ai ajouté cette constante publique OngMIF : Public Const OngMIF As String = "état"
Dans le code VBA, tout ce qui a besoin de l'onglet MIF fait référence à OngMIF, dont le nom actuel est "état" ; si plus tard tu as envie de le changer pour un autre nom, par exemple "ListCmd" (pour "Liste des Commandes"), il te suffira de renommer la feuille, puis de mettre :
Public Const OngMIF As String = "ListCmd" ➯ 1 seul changement à faire dans tout le code VBA
Par précaution, vérifie bien tout ! si tu détectes un problème, tu me diras lequel et je ferai l'adaptation nécessaire.
À te lire pour avoir ton avis, et bonne soirée à toi aussi !
dhany
Bonsoir Dhany,
je test cela demain sur le terrain.
Super l'astuce : Public Const OngMIF As String = "ListCmd", bien pratique pour changer rapidement le noms des onglets.
Un peu comme les classes en CSS que je maitrise bien mieux que le VBA !!!
Bonne soirée
Bonsoir depanmonpc,
Tu a écrit :Super l'astuce : Public Const OngMIF As String = "ListCmd", bien pratique pour changer rapidement le nom des onglets.
Un peu comme les classes en CSS.
J'programme pas en CSS, j'le connais seulement de nom ; quand y'a d'bonnes astuces VBA, autant les utiliser.
Bonne soirée,
dhany