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 Sub

A+

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 chance pour tes tests de demain sur le terrain ! ça devrait aller, mais si y'a un bug de dernière minute, hésite pas à m'en parler !

Bonne soirée,

dhany

Rechercher des sujets similaires à "valider userform remplissage derniere texbox"