Index equiv en VBA #ref

Bonjour,

Je suis nouveau ici et je viens de commencer a toucher à la VBA.

Je bloquer néanmoins depuis sur la transposition d'un formule Index Equiv en VBA.

Ma formule excel est : =INDEX(SQVIBL!$Y$2:$AB$7263;EQUIV(E2&J2;SQVIBL!$Y$2:$Y$7263&SQVIBL!$Z$2:$Z$7263;0);3)

J'ai essayé de transcrire en VBA de la facon suivante mais certaines cellules affichent #REF! (colonne AW)et je suis bloqué.

Si quelqu'un peut m'aider J'ai mis mon fichier (volontairement coupé pour une question de taille)

Voici mon code :

Sub test_rempli()

Dim Numcde As Range

Dim Poste As Range

Set Numcde = Worksheets("SQVICDE").Rows(1).Find("Doc. vente", LookIn:=xlValues, LookAt:=xlWhole)

If Not Numcde Is Nothing Then

Else

MsgBox "La colonne Doc. vente n'a pas été trouvée"

End If

Set Poste = Worksheets("SQVICDE").Rows(1).Find("Poste", LookIn:=xlValues, LookAt:=xlWhole)

If Not Poste Is Nothing Then

Else

MsgBox "La colonne Poste n'a pas été trouvée"

End If

dernierecol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

derniereligne = Range("A655363").End(xlUp).Row

Worksheets("SQVICDE").Cells(1, dernierecol).Offset(0, 1) = "Statut facturation"

For Ligne = 2 To derniereligne

a = Application.Match(Cells(Ligne, Numcde.Column), Worksheets("SQVIBL").Range("Y2:Y" & derniereligne), 0)

b = Application.Match(Cells(Ligne, Poste.Column), Worksheets("SQVIBL").Range("Z2:Z" & derniereligne), 0)

Cells(Ligne, dernierecol).Offset(0, 1).Value = Application.Index(Worksheets("SQVIBL").Range("AA2:AA" & derniereligne), a, b)

Next Ligne

End Sub

D'avance merci !

Bonne soirée

JF

34testindex.xlsx (932.72 Ko)

Bonjour JF et bienvenue,

à tester,

Sub test()
'=INDEX(SQVIBL!$Y$2:$AB$7263;EQUIV(E2&J2;SQVIBL!$Y$2:$Y$7263&SQVIBL!$Z$2:$Z$7263;0);3)
Dim t As String
LastRw1 = Sheets("SQVIBL").Cells(Rows.Count, "A").End(xlUp).Row
LastRw2 = Sheets("SQVICDE").Cells(Rows.Count, "A").End(xlUp).Row

sh1 = Sheets("SQVIBL").Name & "!"
sh2 = Sheets("SQVICDE").Name & "!"

plgI = Range("Y2:AB" & LastRw1).Address(0, 0)
plgR1 = Range("Y2:Y" & LastRw1).Address(0, 0)
plgR2 = Range("Z2:Z" & LastRw1).Address(0, 0)

For i = 2 To LastRw2
    celR1 = Range("E" & i).Address(0, 0)
    celR2 = Range("J" & i).Address(0, 0)

    t = "INDEX(" & sh1 & plgI & ",MATCH(" & sh2 & celR1 & "&" & sh2 & celR2 & "," & sh1 & plgR1 & "&" & sh1 & plgR2 & ",0),3)"
    Sheets("SQVICDE").Cells(i, "AW") = Evaluate(t)
Next i
End Sub

Hello Isabelle,

Merci beaucoup pour ce retour rapide.

Je viens de tester et ça marche parfaitement!!!

Bonne journée et merci encore !

JF

Merci pour ce retour, bonne continuation!

bl
Rechercher des sujets similaires à "index equiv vba ref"