Microsoft 365 Copie d'une valeur dans cellule

Kstanisic

XLDnaute Nouveau
Bonjour à tous,

Je rencontre un soucis sur un de mes fichier excel VBA.
J'aimerais que mon code me permette d'aller chercher des informations dans deux tableaux différents.
En effet je veux que ma colonne O de mon onglet "matériel" se remplisse avec le code du site de ma colonne B de mon onglet "site" .
Pour ça il doit se référer aux libellés du site de l'équipement qu'on retrouve dans l'onglet "tableau" et à partir de là trouver le code du site dans l'onglet "site".

J'ai pensé à utiliser la fonction find mais je n'ai pas réussi. Si quelqu'un aurait la gentillesse de m'aider il me manque plus que cette partie pour finir mon fichier ...

Merci d'avance de votre aide et bonne journée à vous ! :)
 

Pièces jointes

  • exemple.xlsx
    11.3 KB · Affichages: 3
Solution
Bonjour Kstanisic,
Je ne comprends pas pourquoi vous parlez de VBA et livré une PJ en xlsx. Vous voulez une solution en formule ou en VBA ?
En PJ un essai par formule avec en Matériel/O1 :
VB:
=SIERREUR(INDEX(site!B:B;EQUIV(RECHERCHEV(B1;TABLEAU!A:B;2;FAUX);site!C:C;0));"")
Le "Recherche" extrait le site en fonction du N° Equip, le "Equiv" trouve le lieu en fonction du site, et l' "Index" trouve le code par rapport à ce résultat.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kstanisic,
Je ne comprends pas pourquoi vous parlez de VBA et livré une PJ en xlsx. Vous voulez une solution en formule ou en VBA ?
En PJ un essai par formule avec en Matériel/O1 :
VB:
=SIERREUR(INDEX(site!B:B;EQUIV(RECHERCHEV(B1;TABLEAU!A:B;2;FAUX);site!C:C;0));"")
Le "Recherche" extrait le site en fonction du N° Equip, le "Equiv" trouve le lieu en fonction du site, et l' "Index" trouve le code par rapport à ce résultat.
 

Pièces jointes

  • Kstanisic.xlsx
    10.6 KB · Affichages: 3

Kstanisic

XLDnaute Nouveau
Bonjour,

Effectivement je n'ai pas mis le fichier xlm car celui-ci était beaucoup trop lourd et comporte beaucoup de macro.
Votre solution me convient parfaitement !
Merci pour votre réactivité et du temps accordé

Bonne journée à vous
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Sinon en VBA vous pouvez faire, ce qui est la même chose :
VB:
Sub Trouve()
    With Sheets("materiel")
        Application.ScreenUpdating = False
        Set Plage = .Range("O1:O" & Range("B65500").End(xlUp).Row)  ' Selection plage utile de "materiel"
        ' Colle formule
        Plage.FormulaR1C1 = _
        "=IFERROR(INDEX(site!C[-13],MATCH(VLOOKUP(RC[-13],TABLEAU!C[-14]:C[-13],2,FALSE),site!C[-12],0)),"""")"
        Plage.Value = Plage.Value   ' Copie colle valeurs
        .[A1].Select
    End With
End Sub
 

Pièces jointes

  • Kstanisic.xlsm
    18 KB · Affichages: 1

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
300 889
Messages
1 988 142
Membres
210 083
dernier inscrit
Patrick92290