Cellule qui ne s'efface pas depuis un USEFORM
Bonjour,
J'ai le code suivant qui me permet d'incrémenter des dates via un USF.
'Pour le bouton Modifier
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Dim i%, L%
With Worksheets("BC")
If MsgBox("Confirmez-vous les modifications apportées ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
On Error GoTo SORTIE
L = Application.Match(Me.ComboBox1, .Range("ED10:ED" & .Cells(.Rows.Count, 134).End(xlUp).Row), 0) + 9
For i = 1 To 18
If Me.Controls("TextBox" & i).Visible = True Then
If IsDate(Me.Controls("TextBox" & i)) Then
.Cells(L, i + 115) = CDate(Me.Controls("TextBox" & i).Value)
End If
End If
Next i
Me.Label46 = CStr(Application.Index(.Range("EE:EE"), L))
Me.Label47 = CStr(Application.Index(.Range("EF:EF"), L))
Me.Label52 = CStr(Application.Index(.Range("AA:AA"), L))
Me.Label54 = CStr(Application.Index(.Range("I:I"), L))
Me.Label56 = CStr(Application.Index(.Range("EG:EG"), L))
Me.Label59 = CStr(Application.Index(.Range("C:C"), L))
Me.Label61 = CStr(Application.Index(.Range("L:L"), L))
Me.Label62 = CStr(Application.Index(.Range("BM:BM"), L))
Me.Label76 = CStr(Application.Index(.Range("S:S"), L))
Me.Label77 = CStr(Application.Index(.Range("T:T"), L))
Me.Label78 = CStr(Application.Index(.Range("U:U"), L))
Me.Label79 = CStr(Application.Index(.Range("AO:AO"), L))
Me.Label84 = CStr(Application.Index(.Range("J:J"), L))
Me.Label85 = CStr(Application.Index(.Range("K:K"), L))
Me.Label76.Caption = Format(Round(CDbl(Application.Index(.Range("S:S"), L)), 2), "###,##0.00")
Me.Label77.Caption = Format(Round(CDbl(Application.Index(.Range("T:T"), L)), 2), "###,##0.00")
Me.Label78.Caption = Format(Round(CDbl(Application.Index(.Range("U:U"), L)), 2), "###,##0.00")
End If
Me.Label71 = .Range("ED65000").End(xlUp).Rows
End With
Exit Sub
SORTIE: MsgBox "Merci de recommencer une nouvelle saisie", vbCritical: Exit Sub
Application.ScreenUpdating = True
End SubMon problème :
Admettons que j'insère une date dans un TextBox et que je valide. La prise en compte s'effectue correctement et donc la date est bien envoyé dans sa cellule.
Si je fais une erreur et que finalement je ne souhaite plus mettre cette date, je l'efface du USF et lorsque je valide avec le CommandButton2, la date ne s'elève pas de la cellule concernée.
J'ai ce problème depuis que j'ai mis le code :
For i = 1 To 18
If Me.Controls("TextBox" & i).Visible = True Then
If IsDate(Me.Controls("TextBox" & i)) Then
.Cells(L, i + 115) = CDate(Me.Controls("TextBox" & i).Value)
End If
End If
Next ià la place du code :
For i = 1 To 18
If Me.Controls("TextBox" & i).Visible = True Then
.Cells(L, i + 115) = Me.Controls("TextBox" & i)
End If
Next i--> Mais j'avais besoin de modifier le code de cette façon afin que la date soit bien envoyée dans la cellule au REEL format Date.
J'espère que j'ai été assez clair et vous remercie par avance pour votre aide :)
Bonsoir à tous
Peut-être tout simplement parce que tu testes si le champ est une date : si ce champ est vide, ce n'est pas une date , donc tu ne le mets pas dans ta cellule ???
A voir
Bonjour Patty,
Effectivement je pense que cela doit venir de là.
J'ai essayé le code :
For i = 1 To 18
If Me.Controls("TextBox" & i).Visible = True Then
If IsDate(Me.Controls("TextBox" & i)) Then
.Cells(L, i + 115) = CDate(Me.Controls("TextBox" & i).Value)
Else
.Cells(L, i + 115).Value .ClearContents
End If
End If
Next iSans succès... :(
Aurais tu une solution à m'apporter ?
Bonjour,
Essaie :
.Cells(L, i + 115) = ""au lieu
.Cells(L, i + 115).Value .ClearContentsD'ailleurs, tu dois avoir une erreur à cette ligne...
Dis-moi.
Et si cela ne va pas, un extrait de fichier peut-être ?
Bonne journée
Vive la simplicité :)
Merci Beaucoup Patty et bonne journée !