Bonjour,
Ok. Je peux comprendre votre urgence mais vous auriez pu le signaler ici.
Sur base de votre deuxième fichier et en tenant compte de votre liste déroulante en A2 de votre feuil2 :
- Allez dans l'éditeur VBA
- Insérer un module et coller le code ci-dessous
Option explicit
Sub test()
Dim plage As Range, cel As Range
Dim dlg As Integer
Dim i As Byte
Dim tb As ListObject
Sheets("Feuil2").Range("B2:B500").ClearContents
Set tb = Sheets("Feuil1").ListObjects("Tableau1")
Set plage = tb.ListColumns(2).DataBodyRange
For i = 3 To tb.ListColumns.Count
If WorksheetFunction.CountA(plage.Offset(, i - 2)) >= 1 Then
For Each cel In plage
With Sheets("Feuil2")
If cel.Value = .Range("A2").Value Then
dlg = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & dlg) = cel.Offset(0, i - 2).Value
End If
End With
Next cel
End If
Next i
End Sub
- Placez un bouton sur votre feuil1 et associez le à ce code
NB : on peut aussi faire en sorte que le code s'exécute depuis le choix de la liste de validation si vous préférez)
Si ok -->
Cordialement
Edit : ce n'était pas nécessaire de recréer un nouveau fil --> https://forum.excel-pratique.com/excel/recopie-de-cellule-non-vide-en-fonction-d-un-critere-176891.
Il sera supprimé au profit de celui-ci