Bonjour,
J'aimerais faire une importation des données d'une plage d'une autre feuille en fonctions des critères suivants avec la fonction "RechercheV":
- Critères des lignes > 0 ou <> ""
- Titre en-tête de colonne.
Pour ce fait je me suis servi d'une macro élaborée à partir de plusieurs macros trouvées sur ce forum:
!!! Pouvez vous m'aider à améliorer ce code?
J'aimerais faire une importation des données d'une plage d'une autre feuille en fonctions des critères suivants avec la fonction "RechercheV":
- Critères des lignes > 0 ou <> ""
- Titre en-tête de colonne.
Pour ce fait je me suis servi d'une macro élaborée à partir de plusieurs macros trouvées sur ce forum:
!!! Pouvez vous m'aider à améliorer ce code?
Code:
Sub AppelSub()
Feuil1.Range("B3:X20000").ClearContents
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("B3:B68000") ' champ résultat
colResult = Range("B1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("C3:C68000") ' champ résultat
colResult = Range("C1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("D3:D68000") ' champ résultat
colResult = Range("D1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("E3:E68000") ' champ résultat
colResult = Range("E1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("F3:F68000") ' champ résultat
colResult = Range("F1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("G3:G68000") ' champ résultat
colResult = Range("G1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("H3:H68000") ' champ résultat
colResult = Range("H1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("I3:I68000") ' champ résultat
colResult = Range("I1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("J3:J68000") ' champ résultat
colResult = Range("J1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("K3:K68000") ' champ résultat
colResult = Range("K1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("L3:L68000") ' champ résultat
colResult = Range("L1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("M3:M68000") ' champ résultat
colResult = Range("M1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("N3:N68000") ' champ résultat
colResult = Range("N1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("O3:O68000") ' champ résultat
colResult = Range("O1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("P3:P68000") ' champ résultat
colResult = Range("P1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("R3:R68000") ' champ résultat
colResult = Range("R1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("T3:T68000") ' champ résultat
colResult = Range("T1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("V3:V68000") ' champ résultat
colResult = Range("V1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("W3:W68000") ' champ résultat
colResult = Range("W1")
Rechv Clés, Table, colResult, Résultat
Set Table = Feuil2.Range("A2:AO20000") ' champ table source
Set Clés = Feuil1.Range("A3:A68000") ' champ des clés recherchées
Set Résultat = Feuil1.Range("X3:X68000") ' champ résultat
colResult = Range("X1")
Rechv Clés, Table, colResult, Résultat
End Sub
Sub Rechv(Clés, Table, colRésult, Résultat)
Application.ScreenUpdating = False
Set d = CreateObject("Scripting.Dictionary")
a = Table.Value ' table source
b = Clés.Value ' table des clés recherchées
For i = LBound(a) To UBound(a)
d(a(i, 1)) = a(i, colRésult)
Next i
Dim temp()
ReDim temp(LBound(b) To UBound(b), 1 To 1)
For i = LBound(b) To UBound(b)
If d(b(i, 1)) <> "" Then temp(i, 1) = d(b(i, 1)) Else temp(i, 1) = ""
Next i
Résultat.Value = temp
Messagebox = "Terminé"
End Sub