Fonction INDEX + EQUIV sous VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

ti_mouton

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin d'utiliser les formules excel INDEX et EQUIV dans une macro, simplement je ne sais pas comment m'y prendre. Ma base de travail se présente comme suit : j'ai un dossier nommé "Suivi des temps Maintenance" dans lequel j'ai un classeur "Base de Données", un classeur "ClasseurSaisie", et un classeur "Matrice Frais (Km+MO)". Le classeur de saisie est munie d'une macro qui a été développée par des membres du forum CCM (que je remercie grandement). J'ai besoin de rajouter un code qui permet de faire des calculs en récupérant des données dans le classeur "Matrice Frais (Km+MO). Dans les colonnes R - S - T - U - V - W du classeur saisie, j'ai écrit les formules excel qu'il faudrait pouvoir retranscrire sous VBA.

Je vous met l'ensemble du dossier à disposition (avec les 3 classeurs inclus), ça sera surement plus simple à comprendre qu'une longue explication.

Merci pour votre aide
 

Pièces jointes

Re : Fonction INDEX + EQUIV sous VBA

Bonjour,

pour la distance :
Code:
Sub Distance(r As Range)
  Const source = "'C:\Suivi des temps Maintenance\[Matrice Frais (Km + MO).xlsm]"
  r.FormulaR1C1 = _
      "=IF(C[-3]=TRUE,(INDEX(" & source & "Matrice Distance'!C1:C78,MATCH(C3," & source & _
      "Matrice Distance'!C1,0),MATCH(C4," & source & "Matrice Distance'!R1,0)))*2," & _
      "INDEX(" & source & "Matrice Distance'!C1:C78,MATCH(C3," & source & "Matrice Distance'!C1,0)," & _
      "MATCH(C4," & source & "Matrice Distance'!R1,0)))"
End Sub

Évidemment, remplace la valeur de "source" par le bon chemin de ton fichier.

Même principe pour les autres colonnes.
Si tu ne veux pas réfléchir, sélectionne ta cellule, lance l’enregistreur de macro, entre dans ta cellule et valide son contenu.
Arrête l'enregisreur et regarde le code généré dans l'éditeur.
 
Re : Fonction INDEX + EQUIV sous VBA

Bonjour Iznogood1,

Merci pour ton aide.
J'ai à nouveau un blocage. J'ai repris le code que tu m'as proposé. Mon soucis et que le chemin d'accès au fichier est amené à changer, je veux donc qu'il soit lié à ThisWorkbook.Path. J'ai donc voulu rajouter une ligne au debut de ton code mais cela ne marche pas (je ne suis pas assez callée en programmation...)
Code:
Sub Calcul(r As Range)
   Chemin = ThisWorkbook.Path
   Const source = Chemin & "\Matrice Frais (Km + MO).xlsm*"
   r.FormulaR1C1 = _
       "=IF(C[-3]=TRUE,(INDEX(" & source & "Matrice Distance'!C1:C78,MATCH(C3," & source & _
       "Matrice Distance'!C1,0),MATCH(C4," & source & "Matrice Distance'!R1,0)))*2," & _
       "INDEX(" & source & "Matrice Distance'!C1:C78,MATCH(C3," & source & "Matrice Distance'!C1,0)," & _
       "MATCH(C4," & source & "Matrice Distance'!R1,0)))"
 End Sub

Peux tu m'aider ?

Merci beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
785
Retour