XL 2019 Besoin d'aide pour reporter une donnée d'un Userform vers un tableau

Flnte

XLDnaute Nouveau
Bonjour,

Je bloque sur une macro pour envoyer le contenu d'une textbox d'un userform vers une cellule d'une feuille.
En effet dans cette userform je dois saisir la date et le montant du versement. Sur ma feuille j'ai un tableau avec les dates et une colonne qui se nomme versement qui se trouve en "I". J'ai donc commencé un code pour rechercher la date et copier sur la ligne qui correspond à celle-ci en colonne I le montant du versement. Sauf que à chaque fois cela l'inscrit à la ligne du 01/01/22.

voici mon code :

VB:
Private Sub BValider_Click()
'Envoi des info de l'userform vers Récap_TR
With Sheets("Récap TR")
     .Visible = xlSheetVisible
     .Activate
ActiveSheet.Unprotect

' Sur quelle ligne se trouve la date
   Set fd = Sheets("Récap TR")
    dte = TextBox1.Value
    If TextBox1.Value = "" Then
        MsgBox "Saisissez au moins la date", 16
        Exit Sub
    End If
    Set cell = fd.Range("A:A").Find(Year(dte))
    If Not cell Is Nothing Then
        Ln = cell.Row
        fd.Cells(Ln, "I") = TextBox2.Value
        MsgBox "Données reportées"
    Else
        MsgBox "Cette date n'a pas été trouvée.", 16
    End If
    End With
    Unload Me
End Sub

Quelqu'un sait-il me dire où je fais erreur?

Cordialement
 

Pièces jointes

  • Envoi caisse.xlsm
    140.3 KB · Affichages: 2
Solution
Bonsoir Flnte,
Vous faites :
VB:
Set cell = fd.Range("A:A").Find(Year(dte))
Pourquoi ne rechercher que l'année alors que vous recherchez une date ?
Ensuite TextBox1.Value est une chaine de caractères, pas une date numérique.
Testez :
Code:
Set cell = fd.Range("A:A").Find(CDate(dte))
CDate convertit un texte en date, si c'est possible.
Cela semble marcher. :)

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Flnte,
Vous faites :
VB:
Set cell = fd.Range("A:A").Find(Year(dte))
Pourquoi ne rechercher que l'année alors que vous recherchez une date ?
Ensuite TextBox1.Value est une chaine de caractères, pas une date numérique.
Testez :
Code:
Set cell = fd.Range("A:A").Find(CDate(dte))
CDate convertit un texte en date, si c'est possible.
Cela semble marcher. :)
 

Discussions similaires

Réponses
8
Affichages
139

Statistiques des forums

Discussions
299 706
Messages
1 978 624
Membres
206 311
dernier inscrit
koumb