Erreur cellule vide

jtitin

XLDnaute Occasionnel
bonjour à tous
j'ai un petit problème avec le code utiliser ci dessous.
je l'utilise pour modifier des lignes d'une page par l'intermèdiaire d'un userform et textbox.
si pour la ligne 4 et 5 les textbox sont vide et cela arrive la macro provoque une erreur.
comment éviter cela en disant:
si mes textbox "Début" et "Fin" (qui sont des dates) sont vides alors renvoyer valeur vide sinon la valeur des nouvelles dates modifiées.

Private Sub CommandButton1_Click()
Dim lig As Long
If ListBox3.ListIndex = -1 Then
Exit Sub
End If
Sheets(ComboBox3.Value).Select
Range("a1") = ListBox3.Value
Cells.Find(Range("a1").Value, LookIn:=xlValues).Activate
With ActiveCell
.EntireRow.Select
End With
lig = ActiveCell.Row

Cells(lig, 1).Value = UserForm1.TextBox1.Value
Cells(lig, 2).Value = UserForm1.TextBox2.Value
Cells(lig, 3).Value = Format(UserForm1.TextBox3.Value, "###,##€")
Cells(lig, 4).Value = CDate(Format(UserForm1.Début.Value, "dd,mm,yyyy"))
Cells(lig, 5).Value = CDate(Format(UserForm1.Fin.Value, "dd,mm,yyyy"))
Cells(lig, 6).Value = UserForm1.NbJ.Value
Cells(lig, 7).Value = Format(UserForm1.TotPrix.Value, "###,##")
IniListbox3
End Sub


Merci de votre aide
 

jtitin

XLDnaute Occasionnel
Re : Erreur cellule vide

re
quant je dis lignes 4 et 5 en fait c'est colonne 4 et 5
ici:
Cells(lig, 4).Value = CDate(Format(UserForm1.Début.Value, "dd,mm,yyyy"))
Cells(lig, 5).Value = CDate(Format(UserForm1.Fin.Value, "dd,mm,yyyy"))

merci
 
G

Guest

Guest
Re : Erreur cellule vide

Bonjour jtitin,

Code:
If isDate(UserForm1.Début.Value) then
  Cells(lig, 4).Value = CDate(Format(UserForm1.Début.Value, "dd,mm,yyyy")) 
end if
 
If isDate(UserForm1.Fin.Value) then
  Cells(lig, 5).Value = CDate(Format(UserForm1.Fin.Value, "dd,mm,yyyy")) 
end if

P.S. dans l'éditeur des post il y a sur la barre de mise en forme un bouton '#' qui permet d'insérer la balise code dans le message.

Cela rend le VBA plus facile à lire.

A+
 

jtitin

XLDnaute Occasionnel
Re : Erreur cellule vide

re
cela marche si je modifie le code en enlevant
Cdate(format(
et en laissant que UserForm1.Début.Value et UserForm1.Fin.Value
mais il faut que je force le format date sinon mes date s'affiche en mm,dd,yyyy
et je veux dd,mm,yyyy

si vous avez une astuce merci
 
G

Guest

Guest
Re : Erreur cellule vide

Re,

Tu peux:

Code:
If isDate(UserForm1.Début.Value) then   Cells(lig, 4).Value =  UserForm1.Début.Value

Normalement Excel fera la conversion automatiquement puisque l'expression représente une date. IsDate(DTE) = true l'orsque l'expression 'DTE' peut être interprétée comme une date.

A+
 

Discussions similaires

Réponses
17
Affichages
349

Statistiques des forums

Discussions
312 312
Messages
2 087 162
Membres
103 484
dernier inscrit
maintenance alkern