Bonjour Thierry, Salim, re le forum.
Voici une copie exacte de mon code ce sera peut être plus clair :
Private Sub UserForm_Activate()
TBsjour.Value = Format(Now, "MM/DD/YYYY") ' date auto
TBsjour.Enabled = False ' empèche toute modification sur le textbox
End Sub
'page saisie
Private Sub Valider_Click()
Dim Ligne As Integer
Dim sjour As String
Dim qu As String
Dim nom As String
Dim adress As String
Dim cp As String
Dim ville As String
Dim cour As String
Dim net As String
Dim pt As String
Dim lp As String
Dim un As String
Dim ept As String
Dim sept As String
Dim laforetpt As String
Dim artlp As String
Dim laforetlp As String
Dim capeblp As String
Dim intun As String
Dim perun As String
On Error GoTo Err
sjour = TBsjour.Value
qu = TBqu.Value
nom = UCase(TBnom.Value)
adress = TBadress.Value
cp = TBcp.Value
ville = UCase(TBville.Value)
cour = TBcour.Value
net = TBnet.Value
pt = TBpt.Value
lp = TBlp.Value
un = TBun.Value
ept = TBept.Value
sept = TBsept.Value
lpt = TBlaforetpt.Value
artlp = TBartlp.Value
llp = TBlaforetlp.Value
clp = TBcapeblp.Value
intun = TBintun.Value
perun = TBperun.Value
Ligne = Sheets("Saisie").Range("D65536").End(xlUp).Row + 1
Worksheets(1).Activate
Cells(Ligne, 1).Value = sjour
Cells(Ligne, 2).Value = qu
Cells(Ligne, 4).Value = nom
Cells(Ligne, 5).Value = adress
Cells(Ligne, 6).Value = cp
Cells(Ligne, 7).Value = ville
Cells(Ligne, 8).Value = cour
Cells(Ligne, 9).Value = net
Cells(Ligne, 10).Value = pt
Cells(Ligne, 11).Value = ept
Cells(Ligne, 12).Value = sept
Cells(Ligne, 13).Value = lpt
Cells(Ligne, 14).Value = lp
Cells(Ligne, 15).Value = artlp
Cells(Ligne, 16).Value = llp
Cells(Ligne, 17).Value = clp
Cells(Ligne, 18).Value = un
Cells(Ligne, 19).Value = intun
Cells(Ligne, 20).Value = perun
' en cours de test :
If IsMissing(TexteMessage) Then
TexteMessage = "Vous n'avez pas indiqué " & ComplTexte
End If
Dim CTRL As Control
For Each CTRL In Controls
If TypeOf CTRL Is MSForms.TextBox Then
If Not CTRL.Tag = "NonReset" Then CTRL = ""
End If
Next CTRL
Exit Sub
Err:
MsgBox "Oupppsssss erreur"
End Sub
Private Sub TBnom_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TBnom.Value = UCase(TBnom.Value)
End Sub
Private Sub Quit_Click()
Unload tpo
End Sub
Cela pourra peut être aider Salim à comprendre mon code ;-)
Je n'ai pas intégré ta macro, car tes noms de controls ne sont pas mentioné ici mais tout ce que je sais c'est qu'il ne semble pas nécessaire de passer par des variables (sjour, su, nom...) si tu as utilisé la démonination par défaut (TextBox1, TextBox2, 3 etc) tu peux faire ceci directement exemple : => je le saurais pour l'avenir. En fait j'avais posé des variables pour soucis de "lisibilité". Je ne le referais plus promis ;-)
Je vais me pencher sur vos deux idées dès maintenant. Merci les gars