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 SubSi 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 :
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
Et voici !
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 SubJ'ai ajouté : Si la nouvelle entrée contient un retour à la ligne (Chr10) et bien on supprime le chr10
Merci quand même