Usf et Date et Liste

  • Initiateur de la discussion Laurent
  • Date de début
L

Laurent

Guest
Bonjour à tout le forum

Comme beaucoup, j'ai des difficultés avec les dates et les Usf...lol
J'ai trouvé plein de choses dans les messages mais aucune satisfaisante car je veux recopier la date non pas toujours dans la même cellule mais dans la dernière cellule libre de ma colonne...

J'ai joint un exemple avec ce que je veux faire dans le code

Merci d'avance à ceux qui pourront m'aider

Laurent
 

Pièces jointes

  • USF_Date.zip
    14.8 KB · Affichages: 22
@

@+Thierry

Guest
Bonjour Laurent, le Forum

Tu n'étais pas trop loin de ta solution, voici ton Private Module du UserForm2 révisé/corrigé et commenté :

'Pour t'obliger à déclarer tes Variables (ty aurais vu que grace à ça "TextBox_Date" n'existait pas dans ton UserForm)
Option Explicit


'A l'initialise, pas la peine de vider les TextBox, elles sont vides !
Private Sub UserForm_Initialize()
'Par Contre je mets le bouton Valider Défaut pour que la saisie se fasse avec [Entrée]
Me.CommandButton1.Default = True
End Sub

'Je mets le Focus pour La TextBox Date à l'Activation.
Private Sub UserForm_Activate()
Me.TextBox1.SetFocus
End Sub


Private Sub CommandButton1_Click()
Dim TheTextBox As Control 'Déclaration de Variable pour la boucle de nettoyage
Dim TheDate As Date 'Déclaration de Variable pour récupérer la Date dans les deux cellules
Dim L As Integer 'Déclaration de Variable pour la Dernière Ligne Vide

'Ici le Test, si c'est bon on initilaise la Variable
If IsDate(Me.TextBox1) Then
TheDate = CDate(Me.TextBox1)
Else
'Sinon on fait le message et on sort
MsgBox "Veuillez entrer une date valide.", vbOKOnly, "Erreur"
Me.TextBox1.SetFocus
Exit Sub
End If

'On trouve la dernière ligne
L = Sheets("Chambre_Rec").Range("A65536").End(xlUp).Row + 1

'Ok ça tu connais, mais donc on envoie la Variable TheDate au lieu de la TextBox1
With Sheets("Chambre_Rec")
.Range("A" & L).Value = TheDate
.Range("B" & L).Value = TextBox2.Value
.Range("C" & L).Value = TextBox4.Value
.Range("D" & L).Value = TextBox6.Value
.Range("G" & L).Value = TheDate
.Range("H" & L).Value = TextBox3.Value
.Range("I" & L).Value = TextBox5.Value
.Range("J" & L).Value = TextBox7.Value
End With


'Ici c'est une astuce pour vider toutes tes TextBox par une Boucle...
For Each TheTextBox In Me.Controls
If TypeOf TheTextBox Is MSForms.TextBox Then
TheTextBox = ""
End If
Next
Me.TextBox1.SetFocus
End Sub


Private Sub CommandButton2_Click()
Unload UserForm2
End Sub

Bon Appétit
@+Thierry
 
L

Laurent

Guest
Ah la la,

une boucle... Bah voila pourquoi j'y arrivais pas, faut dire que j'en ai jamais utilisé.. lol

En tout cas merci beaucoup pour ton aide sur mon petit pb et aussi pour les demo magnifiques que tu nous envois régulièrement. J'ai beaucoup appris avec...

Merci, merci et merci

A bientot j'espère

Laurent
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 019
Membres
104 006
dernier inscrit
CABROL