Fermeture d’un Userform.

brocbroc

XLDnaute Junior
Bonjour à tous,
J’utilise un user forme « mère » dans lequel j’y ai inséré des boutons qui font appels à d’autres Userforms que j’appellerai Userform « fils » pour plus de clarté.
Le Userform « fils » me permet de saisir des données dans une base.
J’utilise actuellement un bouton qui me permet à la fois d’ajouter mes données saisi et de fermer mon Userform « fils ».
Voici le code actuelle du Userform « fils » :
Private Sub CommandButton1_Click()
Dim I As Integer, col As String

With Worksheets("Feuil3")
For I = 6 To .Range("J65536").End(xlUp).Row
'MsgBox (.Cells(I, 10).Value)
If CStr(.Cells(I, 10)) = Me.TextBox1.Value Then
ligne = I
End If
Next I

.Cells(ligne, 1).Value = Me.TextBox1.Value
.Cells(ligne, 2).Value = Me.TextBox2.Value
.Cells(ligne, 3).Value = Me.TextBox3.Value
.Cells(ligne, 4).Value = Me.TextBox4.Value
.Cells(ligne, 5).Value = Me.TextBox5.Value
.Cells(ligne, 6).Value = Me.TextBox6.Value
.Cells(ligne, 7).Value = Me.TextBox7.Value
.Cells(ligne, 8).Value = Me.TextBox8.Value
.Cells(ligne, 9).Value = Me.TextBox9.Value
End With

Rem Empty Limpia Los Textbox
TextBox1 = Empty
TextBox2 = Empty
TextBox3 = Empty
TextBox4 = Empty
TextBox5 = Empty
TextBox6 = Empty
TextBox7 = Empty
TextBox8 = Empty
TextBox9 = Empty
Rem Textbox1SetFocus Envia el cursor al Textbox1 para volver a capturar los datos
TextBox1.SetFocus
End
Unload Me
End Sub

Mais le problème apparaît lors de la fermeture du Userform « fils », cette fermeture implique aussi la fermeture du Userform « mère » alors que je ne souhaite pas que le Userform « mère » soit fermer en même temps car je lui ai affecté son propre bouton de fermeture.
Merci de votre aide.
 

brocbroc

XLDnaute Junior
Re : Fermeture d’un Userform.

Re userform,
Merci jmps de pencher sur mon cas.
Voici le fichier pour plus de compréhension.
2 questions supplémentaires :
- comment faire pour avoir se format date (##"/"##"/"###0" "##":"##":"#0 ) dans la textbox1 ? Ce qui me permettrai de saisir cette date plus facilement et plus rapidement: au lieu de saisir 26/06/2006 00:00:01 je n’aurai qu’à saisir 26062006000001.
- Quand je saisi mes donnés dans le userform fils une première fois, mes données apparaissent dans la base. Si je veux corriger uniquement un des éléments saisi, ma macro actuelle le permet pas, si je laisse des blancs dans les cases de saisies, les blancs sont je crois considéré comme une valeur et par conséquence efface les saisies précédentes (faite le teste et vous comprendrez).
PS: grâce à ta modif je l'ai appliqué et la fermeture marche correctement.
Merci.
 

Pièces jointes

  • Brocbrocaide.zip
    16 KB · Affichages: 58

kioups

XLDnaute Occasionnel
Re : Fermeture d’un Userform.

Bonjour brocbroc, bonjour josé,

tout d'abord, pour José, c'est un USF "mère", pas "père"...:p

Pour Brocbroc, si tes cellules deviennent vides, c'est normal, ta procédure dit : Cells(ligne, 1).Value = Me.TextBox1.Value

Il faudrait que tu rajoutes une condition du style :

If Me.TextBox1.Value <> "" Then
.Cells(ligne, 1).Value = Me.TextBox1.Value
End if

Dans ce cas, si ta case de saisie est vide, il n'y aura pas de changement.

NOTA BENE : je n'ai jamais fait de USF de ma vie et je suis vraiment expert en VBA, il y a sûrement mieux à faire mais je crois qu'un truc comme ça devrait t'aiguiller...

Pour la date, je sais pas faire.....

Kioups
 

brocbroc

XLDnaute Junior
Re : Fermeture d’un Userform.

Bonjour jmps,
Voilà je vais être plus claire. Ce UF me permet de saisir des données sur une seul ligne et sur plusieurs colonne à la date que je veux. Si par exemple je saisi des informations le 26/06/2006, elles vont apparaîtres dans leurs cellules respectives. Immaginnon que je fais une erreure de saisi et que je m'en apperçoit uniquement après avoir appuyé sur le bouton ajouter de mon UF fils. Il est logique que je retappe la même date et que je corrige uniquement l'information fausse, ce qui va impliquer que je vais laisser des cellules vides dans le UF fils le but étant que ma macro me fasse gagner du temps lors de ma saisie. Le faite même que je laisse des cellules vides dans le UF fils lors ne ma saisie corrective quand je presse le bouton ajouter, la donnée manquante ou fausse a été corrigée mais les cellules laissées vides dans le UF fils ont effacé les données que j'ai saisi au par avant. Dans l'état actuel je dois à chaque fois tous ressaisir pour corriger ma faute, alors quid de la macro? J'espère avoir été plus claire. Faites le teste. Merci de ton aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 839
Messages
2 092 688
Membres
105 509
dernier inscrit
hamidvba