Bonjour le forum,
Comme ce sujet est "résolu" et merci encore à gmb pour ça, je ne sais pas si il est plus judicieux d'ouvrir un nouveau sujet ou pas...
La solution (voir ci-dessous) de gmb fonctionne impeccablement et est assez claire pour mes deux neurones mais je l'applique sur des onglets d'env 250 colonnes et 1500 lignes...
Ce qui provoque des traitements de plusieurs minutes et je me demandais si il y avait une méthode différente pour gagner en vitesse d’exécution.
Dim col_ID, col_Nom, col_Prenom, col_Type, col_Numero, coln
Dim ln, lgn
Sub Exporter()
With Sheets("Feuil2")
.Range("A1").CurrentRegion.ClearContents
col_ID = Rows("1:1").Find("ID", lookat:=xlWhole).Column
col_Nom = Rows("1:1").Find("Nom", lookat:=xlWhole).Column
col_Prenom = Rows("1:1").Find("Prénom", lookat:=xlWhole).Column
col_Type = Rows("1:1").Find("Type", lookat:=xlWhole).Column
col_Numero = Rows("1:1").Find("Numéro", lookat:=xlWhole).Column
Cells(1, col_ID).Copy .Range("A1")
Cells(1, col_Nom).Copy .Range("B1")
Cells(1, col_Numero).Copy .Range("C1")
For ln = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(ln, col_Type) = "C14" Then
lgn = .Range("A" & Rows.Count).End(xlUp)(2).Row
Cells(ln, col_ID).Copy .Cells(lgn, "A")
Cells(ln, col_Nom).Copy .Cells(lgn, "B")
Cells(ln, col_Numero).Copy .Cells(lgn, "C")
End If
Next ln
End With
End Sub
Merci beaucoup pour vos lumières.