Macros avec index et equiv

Bonjour

Je souhaite utilisé les fonction index et equiv afin de trouver une valeur correspondant a une date dans un tableau.

j'ai essayer la macro ci dessous, mais elle affiche différentes erreurs, malgré quelques recherches, je n'es rien pu trouver.

Sub Bouton2_Clic()
'
' Bouton2_Clic Macro
'
If Worksheets(">Input").Range("I1") <> "" Then

'index equiv ligne 2
Sheets(Sheets(1).[I1].Value).Select

Dim y, z, p, g, t As Range
y = ActiveSheet.Range("$A$14").End(xlDown).Offset(6, 5).Row
z = ActiveSheet.Range("$A$13").End(xlToRight).Column
p = ActiveSheet.Range(Cells(y, 6), Cells(y, z))
g = Worksheets(">Calculation").Range("B1")
t = Worksheets(Sheets(1).[I1].Value).Range(Cells(y, 6), Cells(y, z)).Offset(11, 0)

Worksheets(">Calculation").Range("B6").Formula = "=INDEX(p,,EQUIV(g,p,0))"

Else
MsgBox "There is no name on the sheets"

End If
End Sub

si vous voyez une erreur dans le code merci de me le dire, sinon pour plus de compréhension je met un fichier en pièce jointe.

cordialement

vincent

Bonsoir,

Je n'ai pas creusé ton problème mais au premier coup d'oeil on peut voir que les types des variables ne correspondent pas aux valeurs de retournées dans les lignes suivantes:

-Column et Row retourne des Long (les n° de colonne et de ligne) , donc ça ne peut pas marcher.

Dim y As Range
y = ActiveSheet.Range("$A$14").End(xlDown).Offset(6, 5).Row
Dim z As Range
z = ActiveSheet.Range("$A$13").End(xlToRight).Column

Sinon, pour affecter un objet à une variable objet il faut faire précéder la variable du mot-clé "Set"

Dim t As Range
[b]SET[/b] t = Worksheets(Sheets(1).[I1].Value).Range(Cells(y, 6), Cells(y, z)).Offset(11, 0)

Voilà un début de réponse.

Bonjour,

Dans ton code tu déclares y et z en tant que Range alors que tu récupères des entiers, n° de ligne et colonne.

Ci joint ton fichier modifié avec quelques explications directement dans le code et ça marche.

Dans ton code tes variables p et g ne faisaient pas référence à une plage alors que INDEX et EQUIV attendent une plage d'où le plantage.

A+

Je te renvoie un classeur dans lequel j'ai nommé les plages (attention, dates est nommé en dur) pour alléger la formule.

merci a vous tous. J'ai tester les fichier, cela fonctionne exactement comme je le voulais.

Je regarde le code tout a l'heur pour voire si j'ai bien compris la méthode!

merci encore a ce forum, qui regorge d'information et de membres très actif et sympathique!

vincent

Rechercher des sujets similaires à "macros index equiv"