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
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
Pièces jointes
Dernière édition: