Pb de validation de données de textbox vide vers cellule

folls

XLDnaute Junior
Bonjour le forum et à ceux qui le font vivre!
J'ai grace à vous déjà beaucoup avancé mais je viens de voir un petit soucis dans ma validation de données.
Je vais essayer de faire simple!
Dans un USF, j'ai des textbox (pour la saisie de date) lorsque je valide celles ci sont envoyées dans des cellules d'une feuille (base de données) de mon classeur.
A l'ouverture de mon USF ("Base_de_données" pour la saisie) celui ci récupère les données et les "range" dans les textbox correspondantes.
Le problème que je rencontre c'est que lorsque je supprime une données dans une de ces textbox et que je valide la cellule de destination garde son ancienne valeur.

Private Sub Valider_dates_heures_Click()
With Sheets("Base de données")
'date de jours fériés
If TextBox1.Value <> "" Then .Range("a3").Value = CDate(Me.TextBox1.Text)
If TextBox2.Value <> "" Then .Range("a4").Value = CDate(Me.TextBox2.Text)
'( il y en a tout un tas)
End With
'Cacher userform
Base_de_données.Hide
End Sub

Private Sub UserForm_initialize()
Base_de_données.Show
Me.TextBox1.Text = Sheets("base de données").Range("a3").Value
TextBox2.Text = Sheets("base de données").Range("a4").Value
(etc...)
End Sub

Je pense que celà viens de :<>"" mais je ne trouve pas la solution!
J'espère que j'ai pu me faire comprendre.
Merci à vous
@+
Folls...
 

excalibur

XLDnaute Impliqué
Re : Pb de validation de données de textbox vide vers cellule

bonjour folls le forum
Private Sub Valider_dates_heures_Click()
With Sheets("Base de données")
'date de jours fériés
If TextBox1.Value <> "" Then
.Range("a3").Value = CDate(Me.TextBox1.Text)
else
.Range("a3").Value =""
end if
If TextBox2.Value <> "" Then
.Range("a4").Value = CDate(Me.TextBox2.Text)
else
.Range("a4").Value =""
end if
End With
'Cacher userform
Base_de_données.Hide
End Sub
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Pb de validation de données de textbox vide vers cellule

bonjour folls,
Le pb c'est que tu vérifies si la textbox n'est pas vide (<>"") pour appliquer la valeur, mais rien si au contraire elle est vide ("").
Il manque le "tout un tas", pour voir si une simplification est envisageable
A+
kjin

bonjour excalibur, message croisé
 

folls

XLDnaute Junior
Re : Pb de validation de données de textbox vide vers cellule

Bonjour et merci à vous de me répondre aussi vite.
Le problème de mes textbox que je n'ai pas tout cité c'est qu'il y en a 18 qui sont formaté ainsi que les cellules pour des dates, 5 pour des valeurs hh:mm:ss et 4 autres pour des textes.
Si toutefois il y a une solution pour simplifier les voici dans l'ensemble:+

Private Sub Valider_dates_heures_Click()

With Sheets("Base de données")
'date de jours fériés
If TextBox1.Value <> "" Then .Range("a3").Value = CDate(Me.TextBox1.Text)
If TextBox2.Value <> "" Then .Range("a4").Value = CDate(Me.TextBox2.Text)
If TextBox3.Value <> "" Then .Range("a5").Value = CDate(Me.TextBox3.Text)
If TextBox4.Value <> "" Then .Range("a6").Value = CDate(Me.TextBox4.Text)
If TextBox5.Value <> "" Then .Range("a7").Value = CDate(Me.TextBox5.Text)
If TextBox6.Value <> "" Then .Range("a8").Value = CDate(Me.TextBox6.Text)
If TextBox7.Value <> "" Then .Range("a9").Value = CDate(Me.TextBox7.Text)
If TextBox8.Value <> "" Then .Range("a10").Value = CDate(Me.TextBox8.Text)
If TextBox9.Value <> "" Then .Range("a11").Value = CDate(Me.TextBox9.Text)
If TextBox10.Value <> "" Then .Range("a12").Value = CDate(Me.TextBox10.Text)
If TextBox11.Value <> "" Then .Range("a13").Value = CDate(Me.TextBox11.Text)
If TextBox12.Value <> "" Then .Range("a14").Value = CDate(Me.TextBox12.Text)
If TextBox13.Value <> "" Then .Range("a15").Value = CDate(Me.TextBox13.Text)
If TextBox14.Value <> "" Then .Range("a16").Value = CDate(Me.TextBox14.Text)
If TextBox15.Value <> "" Then .Range("a17").Value = CDate(Me.TextBox15.Text)
If TextBox16.Value <> "" Then .Range("a18").Value = CDate(Me.TextBox16.Text)
If TextBox17.Value <> "" Then .Range("a19").Value = CDate(Me.TextBox17.Text)
If TextBox18.Value <> "" Then .Range("a20").Value = CDate(Me.TextBox18.Text)
'heures des différentes données
.Range("b2").Value = Format(Me.TextBox19.Text, "hh:mm")
.Range("c3").Value = Format(Me.TextBox20.Text, "hh:mm")
.Range("c4").Value = Format(Me.TextBox21.Text, "hh:mm")
.Range("c5").Value = Format(Me.TextBox22.Text, "hh:mm")
.Range("c6").Value = Format(Me.TextBox23.Text, "hh:mm")
'visa des différentes autorités
.Range("a22").Value = Me.TextBox24.Text
.Range("a23").Value = Me.TextBox25.Text
.Range("a24").Value = Me.TextBox26.Text
.Range("a25").Value = Me.TextBox27.Text
End With
'Cacher userform
Base_de_données.Hide
End Sub

Private Sub UserForm_initialize()
Base_de_données.Show
Me.TextBox1.Text = Sheets("base de données").Range("a3").Value
TextBox2.Text = Sheets("base de données").Range("a4").Value
TextBox3.Text = Sheets("base de données").Range("a5").Value
TextBox4.Text = Sheets("base de données").Range("a6").Value
TextBox5.Text = Sheets("base de données").Range("a7").Value
TextBox6.Text = Sheets("base de données").Range("a8").Value
TextBox7.Text = Sheets("base de données").Range("a9").Value
TextBox8.Text = Sheets("base de données").Range("a10").Value
TextBox9.Text = Sheets("base de données").Range("a11").Value
TextBox10.Text = Sheets("base de données").Range("a12").Value
TextBox11.Text = Sheets("base de données").Range("a13").Value
TextBox12.Text = Sheets("base de données").Range("a14").Value
TextBox13.Text = Sheets("base de données").Range("a15").Value
TextBox14.Text = Sheets("base de données").Range("a16").Value
TextBox15.Text = Sheets("base de données").Range("a17").Value
TextBox16.Text = Sheets("base de données").Range("a18").Value
TextBox17.Text = Sheets("base de données").Range("a19").Value
TextBox18.Text = Sheets("base de données").Range("a20").Value

TextBox19.Text = Format(Sheets("base de données").Range("b2"), "hh:mm:ss")
TextBox20.Text = Format(Sheets("base de données").Range("c3"), "hh:mm:ss")
TextBox21.Text = Format(Sheets("base de données").Range("c4"), "hh:mm:ss")
TextBox22.Text = Format(Sheets("base de données").Range("c5"), "hh:mm:ss")
TextBox23.Text = Format(Sheets("base de données").Range("c6"), "hh:mm:ss")

TextBox24.Text = Sheets("base de données").Range("a22").Value
TextBox25.Text = Sheets("base de données").Range("a23").Value
TextBox26.Text = Sheets("base de données").Range("a24").Value
TextBox27.Text = Sheets("base de données").Range("a25").Value

End Sub

Merci encore de votre temps qui m'en apprend beaucoup (novice en la matière!)
@+
Folls...
 

folls

XLDnaute Junior
Re : Pb de validation de données de textbox vide vers cellule

Je viens de m'apercevoir que j'ai un autre problème qui se greffe,
en effet j'ai bien une action "If" mais pas de "End if" et si je la rajoute : message d'erreur comme quoi je n'ai pas "If" (et pourtant il y est!)
Idem pour "Else"
Merci
Folls...
 

jp14

XLDnaute Barbatruc
Re : Pb de validation de données de textbox vide vers cellule

Bonjour

Un peut facilement utiliser une boucle FOR NEXT, pour simplifier l'écriture

For i = 3 To 20
If Me.Controls("Textbox" & i-2).Value <> "" Then
.Range("a" & i).Value=CDate( Me.Controls("Textbox" & i-2).Value)
else
.Range("a" & i).Value=""
end if
Next i

A tester


JP
 
Dernière édition:

folls

XLDnaute Junior
Re : Pb de validation de données de textbox vide vers cellule

Merci à vous pour vos réponses, tout fonctionne, je vais voir pour la simplification qui me pose quelques petits problèmes vu que la feuille est protégée (mais pas les cellules de destination).
Faut que je trouve la bonne destination.
Encore merci
PS: pour l'histoire des "End if" sans les "If", je pense que celà doit venir lors de l'écriture ou je n'avais peut-être pas écrit tel que les "aides" l'aimeraient!
@+ de lire vos aides bien instructives
Folls...
 

Discussions similaires

Réponses
5
Affichages
365

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390