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
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
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 SubHello Isabelle,
Merci beaucoup pour ce retour rapide.
Je viens de tester et ça marche parfaitement!!!
Bonne journée et merci encore
JF
