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 Sub

Mon 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 i

Sans succès... :(

Aurais tu une solution à m'apporter ?

Bonjour,

Essaie :

.Cells(L, i + 115) = ""

au lieu

.Cells(L, i + 115).Value .ClearContents

D'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

C'est parfait ! Cela fonctionne
Vive la simplicité :)

Merci Beaucoup Patty et bonne journée !
Rechercher des sujets similaires à "qui efface pas useform"