Bonjour
Le plus simple est de passer par VBA
Avec ce code à placer dans un module et à associer à un bouton à placer là où vous voulez
Sub test()
'declaration variables
Dim c As Range
Dim dcol As Integer, i As Integer, dlig As Integer
Dim F As Worksheet
Dim j As Byte
With Sheets("note de frais")
.Range("A4:A" & .Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents 'suppression des données en feuille notes de frais
End With
Set F = Sheets("Répetitions") 'definir F pour feuille repetition
Set c = F.Range("A:A").Find(Sheets("note de frais").Range("A1"), LookIn:=xlValues) 'chercher si nom en A1 de feuille note de frais existe dans feuille Repetition
dcol = F.Cells(1, Columns.Count).End(xlToLeft).Column 'derniere colonne en ligne 1 de feuille répetitions
For j = 1 To 2 'boucle sur 2 puisque deux feuilles concernees (repetitions et sorties)
If Not c Is Nothing Then 'si variable C est no nulle
For i = 1 To dcol 'boucle de colonne 1 à derniere colonne
If F.Cells(c.Row, i) = 1 Then 'si valeur 1 trouvee dans le ligne de variable c
With Sheets("note de frais")
dlig = .Range("A" & Rows.Count).End(xlUp).Row + 1 'derniere ligne en feuille note de frais
.Range("A" & dlig) = CDate(F.Cells(j, i)) 'ajout date en colonne A de note de frais
End With
End If
Next i
Set F = Sheets("Sortie") 'definir F pour feuille sortie
Set c = F.Range("A:A").Find(Sheets("note de frais").Range("A1"), LookIn:=xlValues) 'chercher si nom en A1 de feuille note de frais existe dans feuille sortie
dcol = F.Cells(2, Columns.Count).End(xlToLeft).Column 'derniere colonne en ligne 1 de feuille sortie
End If
Next j 'incrementer j
End Sub
Enregistrez votre fichier au format XLSM pour accepter les macros
Faites un test
Si ok,
Crdlt