Loïc DUBOIS
XLDnaute Occasionnel
Bonjour à tous,
J'espère que vous allez bien ?
J'ai un problème lié à un grand jeu de données sur excel. Je m'explique je souhaite appliquer ce code :
L'objectif est de trouver des correspondances selon 3 critères (2 colonnes et une ligne).
Le code fonctionne très bien sur des petit jeu de données (max 30k lignes). Comme vous pouvez le voir je souhaite appliquer la formule sur 449k lignes sur 22 colonnes. Avez-vous une solution pour optimiser ce code pour que les fomurles puissent s'appliquer sur tout mon jeu de donnée ?
Je vous met également un fichier test.
Merci beaucoup d'avance.
J'espère que vous allez bien ?
J'ai un problème lié à un grand jeu de données sur excel. Je m'explique je souhaite appliquer ce code :
VB:
Sub FormuleSheet1()
' Formule peut être acquise directement par l'enregistreur de macro
Formule = "=IFERROR(INDEX(Feuil1!R2C3:R616000C24,MATCH(Sheet1!RC4&Sheet1!RC8,Feuil1!R2C1:R616000C1&Feuil1!R2C2:R616000C2,0),MATCH(Sheet1!R1C,Feuil1!R1C3:R1C24,0)),"""")"
Sheets("Sheet1").[AE2].FormulaArray = Formule ' On colle la formule
Range("AE2").Copy ' On duplique cette formule sur la plage
Range("AE2").AutoFill Destination:=Range("AE2:AE449835"), Type:=xlFillDefault
Range("AE2:AE449835").AutoFill Destination:=Range("AE2:AZ449835"), Type:=xlFillDefault
Range("AE2:AZ449835") = Range("AE2:AZ449835").Value ' On colle les valeurs
Range("AE2").Select
Application.CutCopyMode = False
End Sub
L'objectif est de trouver des correspondances selon 3 critères (2 colonnes et une ligne).
Le code fonctionne très bien sur des petit jeu de données (max 30k lignes). Comme vous pouvez le voir je souhaite appliquer la formule sur 449k lignes sur 22 colonnes. Avez-vous une solution pour optimiser ce code pour que les fomurles puissent s'appliquer sur tout mon jeu de donnée ?
Je vous met également un fichier test.
Merci beaucoup d'avance.