Problème d'un retour à la ligne en trop

Bonjour,

Suite à de nombreuses recherche je capitule devant mon problème et j'en appel à quelqu'un qui aurait un peu de temps :

J'ai ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
rep = Target.Value
Application.Undo
rep1 = Target.Value
'Application.Undo
'If rep <> rep1 Then rep2 = MsgBox("La valeur de A1a changé !" & vbLf & "Ancienne valeur : " & rep1 & vbLf & "Nouvelle valeur : " & rep & vbLf & "Voulez-vous ajoutez la nouvelle valeur ?", vbYesNo + vbExclamation + vbDefaultButton1, "Notification")
If rep <> rep1 Then rep2 = MsgBox("Voulez-vous ajoutez la nouvelle valeur ?", vbYesNo + vbExclamation + vbDefaultButton1, "Notification")
If rep2 = vbYes Then
If rep = "" Then
Range("A1") = ""
Else

rep = CStr(rep)
rep1 = CStr(rep1)
rep = CStr(Format(Now, "dd/mm/yyyy") + " : " + rep)
Range("A1") = rep & Chr(10) & rep1
End If
Else
Range("A1") = rep1
End If
Application.EnableEvents = True
Selection.WrapText = False

End Sub

Si vous testez sur une feuille vierge, cela permet d'ajouter la nouvelle valeur de la cellule avec l'ancienne valeur de la cellule. J'ai ajouter un retour à la ligne pour que l'on distingue bien chaque entrée.

J'ai l'impression que tout se passe bien quand on commence par rentrer des lettres, mais quand on commence par rentrer des chiffres cela pose problème :

xls

Il y a un retour à la ligne en trop ...

Quelqu'un aurait une petite idée ?

Merci d'avance

Salut javier,

je viens de tester le code et tout fonctionne bien en entrant des lettres ou des chiffres!

Peut-on voir une copie du fichier qui pose le probléme?

Merci

Bonne nuit

Du coup j'ai fais ça :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rep, rep1 As String
If Target.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
rep = Target.Value
Application.Undo

If Right(rep, 1) = Chr(10) Then
rep = Left(rep, InStr(rep, Chr(10)) - 1)
End If

rep1 = Target.Value
'Application.Undo
'If rep <> rep1 Then rep2 = MsgBox("La valeur de A1a changé !" & vbLf & "Ancienne valeur : " & rep1 & vbLf & "Nouvelle valeur : " & rep & vbLf & "Voulez-vous ajoutez la nouvelle valeur ?", vbYesNo + vbExclamation + vbDefaultButton1, "Notification")
If rep <> rep1 Then rep2 = MsgBox("Voulez-vous ajoutez la nouvelle valeur ?", vbYesNo + vbExclamation + vbDefaultButton1, "Notification")
If rep2 = vbYes Then
If rep = "" Then
Range("A1") = ""
Else

rep = CStr(rep)
rep1 = CStr(rep1)
rep = CStr(Format(Now, "dd/mm/yyyy") + " : " + rep)
Range("A1") = rep & Chr(13) & rep1
End If
Else
Range("A1") = rep1
End If
Application.EnableEvents = True
Selection.WrapText = False

End Sub

J'ai ajouté : Si la nouvelle entrée contient un retour à la ligne (Chr10) et bien on supprime le chr10

Merci quand même

Rechercher des sujets similaires à "probleme retour ligne trop"