utilisation de Evaluate avec des variables- erreur 2042

kanne marie

XLDnaute Nouveau
Bonjour à tous,

Je suis débutante en vba et j'aurais besoin de votre aide.
Je souhaite dans une feuille excel "rapport d'analyse" récupérer des données d'une feuille du même classeur nommée "DPC". Ces données seront issues d'une recherche multicritères par evaluate.
Dans ma feuille 'rapport d'analyse", je voudrais mettre en face de tous les éléments de la colonne A (à partir de la ligne 15) une tolérance dans la colonne "tol inf" et qui serait récupérer de la feuille "DPC" avec pour critères: la case B4 de la feuille "rapport d'analyse" et le contenu de la cellule active "Ai".
Or la macro ci-dessous me donne des valeurs importées égales à #N/A. Je vous joins mon fichier excel pour plus de clarté.

merci pour votre aide


Sub importtol()

'importation des tolérances du plan pour calcul
Dim plg1 As Range
Dim plg2 As Range
Dim plg3 As Range
Dim cell
Dim piece

Set plg1 = Sheets("Rapport d'analyse").Range("A15:A" & Range("A65536").End(xlUp).Row)


For Each cell In plg1 'on balaie la colonne des cotes dont les tol sont à marquer


'définition d'un nom à la plage pour calcul matriciel
' définition nom réfpièce
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Activate
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Range("C2", Range("C2").End(xlDown)).Select
Names.Add Name:="refpiece", RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

'définition nom cote
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Activate
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Range("F2", Range("F2").End(xlDown)).Select
Names.Add Name:="cote", RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

'définition nom tol inf
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Activate
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Range("H2", Range("H2").End(xlDown)).Select
Names.Add Name:="tolinf", RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

'définition nom tol sup
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Activate
Sheets(Sheets("Rapport d'analyse").Range("B6").Value).Range("I2", Range("I2").End(xlDown)).Select
Names.Add Name:="tolsup", RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

'remplissage de la case tol inf dans rapport d'analyse
Sheets("Rapport d'analyse").Activate
piece = Sheets("Rapport d'analyse").Range("B4")

cell.Offset(0, 2) = Evaluate("INDEX(tolinf,match(1,(refpiece=" & piece & ")*(cote= " & cell & "),0))")


Next cell
End Sub
 

Fichiers joints

Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : utilisation de Evaluate avec des variables- erreur 2042

Bonjour kanne marie

Et bienvenue sur XLD

Mais ton fichier n'est pas passé
 

pierrejean

XLDnaute Barbatruc
Re : utilisation de Evaluate avec des variables- erreur 2042

Re

Oui ton fichier est bien passé
Comme je suis très loin d'etre expert en formule , il faudrait
soit qu'un formuliste passe par la
soit que tu me communiques une formule testée sur ton fichier et qui fonctionne
Autre solution : explique moi en gaulois dans le texte ce que tu cherches a obtenir
 

kanne marie

XLDnaute Nouveau
Re : utilisation de Evaluate avec des variables- erreur 2042-résolu

Bonjour,

Merci pierrejean de t'être penché sur la question. J'ai finalement réussi à faire ce que je voulais c'est-à-dire d'importer des données répondant à deux critères d'une feuille à une autre en utilisant "evaluate" . j'ai donc inclus ma solution si cela peut aider quelqu'un.
 

Fichiers joints

emma

XLDnaute Nouveau
Re : utilisation de Evaluate avec des variables- erreur 2042

bonjour, j'ai besoin de votre aide aussi svp je suis vrmt débutante de vba
voila je vous explike mon problème
j'ai deux feuilles d'excel liés grace à une macro ke j'ai réusssi à l'introduire.ET Là mnt j'ai besoin d'enlever des lignes de la première feuille et de la deuxieme feuilles mais automatiquement c à d si j'enleve une ligne ( toto) elle sera automatiquement suprimé ds la deuxieme feuille ! merci d'avance
 
Haut Bas