Salut Carnac,
En espérant avoir compris ton problème, tes explications n'étant pas des plus claires
Sur la feuille "Fichier source", tu places des formules dans les colonnes L à S de manière à ne pas avoir de différence entre les deux parties de ton fichier. Dans ton exemple tu as écrit JEAN-MARIE CHRISTIAN en F4 et JEAN et N4, si tu compares ces deux cellules, c'est normal que sur la feuille "Fichier à traiter", ça soit reporté ainsi.
Afin que ta macro Private Sub Worksheet_Change(ByVal Target As Range) ne remplace pas les formules mises en places, modifies la ainsi :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("A1:K65000")) Is Nothing Then
Application.EnableEvents = False
Target = Trim(Target)
Application.EnableEvents = True
End If
End Sub
Je trouve ta manière de faire très compliquée, je ne vois pas à quoi peut bien te servir ton tableau de la feuille "Fichier à traiter". Du point de vue Excel, tes données ainsi présentées sont tout à fait inutilisables
Et si au lieu de dédoubler les données sur ta feuille "Fichier source" tu utilisais deux fois la même formule sur ta feuille "Fichier à traiter" (par exemple =SI('Fichier source'!D2="";"";'Fichier source'!D2) en D4 et en G4) ?
Autrement - si ta mise en page de la feuille "Fichier à traiter" est indispensable et que tu as des quantités de données à traiter - il doit être possible d'automatiser le report des données de la feuille "Fichier source" à la feuille "Fichier à traiter" par une macro, en évitant tes formules sur cette dernière feuille (et apparemment en supprimant les colonnes L à S de l'autre feuille).
Si jamais reviens avec plus de précisions.
A te relire.