Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 fonction index Match

  • Initiateur de la discussion Initiateur de la discussion Calou83
  • Date de début Date de début

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 !

Calou83

XLDnaute Nouveau
Bonjour à toutes et tous,

j'ai un fichier avec 2 onglets : doublerecherche et recherche_feuille
j'ai créé le code ci-dessous : lorsque j'exécute la macro voici le code erreur : Erreur 13 incompatibilité de type
Je cherche partout dans les forums mais je ne trouve pas de solution.

VB:
Sub jeTeste2()
    Dim myrange As Range
    Set myrange = Range("ListeRef")
    Dim MyRange2 As Range
    Set MyRange2 = Range("ListeMagasin")
    Dim MyTable As Range
    Set MyTable = Worksheets("doublerecherche").Range("STOCK")
    
      
    Worksheets("Recherche_feuille").Range("MAG_1") = Application.WorksheetFunction.Index(MyTable, _
            Application.Match(Worksheets("Recherche_feuille").Range("test2"), Worksheets("doublerecherche").Range("ListeRef"), 0), _
            Application.Match(Worksheets("Recherche_feuille").Range("$b$11"), Worksheets("doublerecherche").Range("ListeMagasin"), 0))

End Sub

Avez-vous une idée ? Merci pour votre aide
 

Pièces jointes

Solution
Je ne sais pas bien comment tu procèdes
Ecris-tu le magasin manuellement en A1 et ensuite tu lances la macro ?
Bon j'ai mis un on error resume next chez moi même s'il trouve pas cela ne fait pas d'erreur mais selon les options cela varie
Voici une nouvelle version
Bruno
VB:
Sub Bruno()
Dim col%, lig%, lg%, i%
Feuil1.Select
On Error Resume Next
col = Application.Match([A1], Rows(11), 0)
If Err <> 0 Then Exit Sub
i = Application.Match([A1], Feuil7.Rows(1), 0)
For lg = 12 To [A65000].End(3).Row
lig = Application.Match(Cells(lg, 1), Feuil7.[A:A], 0)
Cells(lg, col) = Feuil7.Cells(lig, i)
Next
End Sub
Bonjour.
Apparemment c'est parce que vous spécifiez un plage de plusieurs cellules comme 1er argument de Application.Match, alors ça renvoie aussi un tableau de tous ces résultats, ce qui n'est pas un argument 2 valide pour la Application.WorksheetFunction.Index
 
Bonjour,

Merci pour votre réponse.
Le formule fonctionne dans le tableau avec la plage nommée test2.
=SIERREUR(INDEX(STOCK;EQUIV(test2;ListeRef;0);EQUIV($B$11;ListeMagasin;0));"")
comment puis-je le traduire en VBA

Encore merci et bonne journée
 
Moi je préparerais le résultat dans un tableau dynamique que je verserais à la fin dans toute la plage.
Mais si la formule fonctionne installez la, quitte à affecter à la fin la valeur de la plage à elle même si vous ne voulez pas la garder.
 
Bonjour tous,
A tester cette simple macro
Bruno
VB:
Sub Bruno()
Dim col%, lig%
col = Application.Match([B2], Feuil7.Rows(1), 0)
lig = Application.Match([B1], Feuil7.[D:D], 0)
If IsNumeric(col) And IsNumeric(lig) Then [B9] = Feuil7.Cells(lig, col)
End Sub
 
Merci Bruno cela fonctionne.

Ce que je souhaite c'est remplir la colonne MAG_1 avec le même formule mais qui fait référence à la colonne Test2 (à la place de B1 et la cellule B11 à la place de B2
 
Merci, pour info mon fichier à plus de 35000 lignes et les formules index equiv ralentissent considérablement le fichier c'est pourquoi je souhaitais passer le vba.
 
Il est possible bien sur d'exécuter la macro sans le bouton.
en macro . . .
For col = 2 To 14 Step 4 ' voir +(14) si besoin
au lieu de 14 mets le N° de colonne du dernier Magasin
sinon on peut aussi le trouver par macro
Bruno
 
Bonjour,

Désolée c'est encore moi.... j'ai essayé d'adapter le code pour effectuer la recherche que sur le magasin 2 (exemple) et je n'y arrive pas. Pouvez vous encore m'aider ?

Merci et bonne journée
 
- 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
5
Affichages
259
Réponses
4
Affichages
197
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
508
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…