Bonjour à tous,
Je bloque depuis quelques heures sur une incompatibilité de type et je n'arrive pas à trouver l'erreur.
J'ai une base access. Je pilote un fichier excel depuis access. Mon but est de faire des calculs (combinaison index et equiv multicritères) dans le fichier excel en le déclenchant d'access.
Dans excel directement, mes formules fonctionnent très bien (voir pièce jointe). Dans access, ça plante et je vous mets ci-dessous le code avec la partie où ça bloque en rouge (j'ai fait des tests en découpant mon code donc il est - quasi- certain que ça bloque à cet endroit).
L'appel de la procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub WriteDataTOTAL(xlWkb As excel.Workbook, NumWsh As Integer, plageDate As String, colonneDate As String, colonneMachine As String) Dim i, countplageDate countplageDate = xlWkb.Worksheets(NumWsh).Range(plageDate).Rows.Count For i = 1 To countplageDate xlWkb.Worksheets(NumWsh).Range(colonneMachine & i + 1) = _ WorksheetFunction.Index(xlWkb.Worksheets(NumWsh).Range("SOURCES_EFFECTIFS_NB"), _ WorksheetFunction.Match( _ xlWkb.Worksheets(NumWsh).Range(colonneMachine & "1"), _ IIf(xlWkb.Worksheets(NumWsh).Range("SOURCES_EFFECTIFS_DATE") = xlWkb.Worksheets(NumWsh).Range(colonneDate & "2"), _ xlWkb.Worksheets(NumWsh).Range("SOURCES_EFFECTIFS_FILTRE"), ""), 0)) Next i End Sub
Call WriteDataTOTAL(xlWkb, 1, "TOTAL_DATE", "K", "L")
Je me dis que ça doit être tout bête: je fais dans mon Iif une comparaison d'un range et d'une valeur, mais ça ne marche pas, j'ai également testé en ajoutant.Value dans le membre à droite du égal.
Merci par avance pour votre aide.
Partager