VBA Application.Match et Application.Index

Bonjour,

j'ai un tableau nommé en colonne tabz qui est une plage en colonne de dates de jours fériés

tabd est une plage sous forme de tableau qui regroupe des dates en ligne (les cellules sont fusionnées 2 par 2 et affiche toutes les dates de l'année au format jj)

ici 01, 02 etc donc par ex S52 / D / 01, le 01 est inscrit dans la 1ere cellule, celle de gauche et l'autre à droite est vide

capture 000296

je veux rechercher les dates de tabz dans la plage tabd et colorier la plage de colonne correspondant

Sub Tableau()
Dim tabd() As Variant
Dim tabd2() As Variant
Dim i As Long
Dim k As Long
Dim plage As Range

LG = 3  '1ère ligne non vide : Début du tableau
DERNCOL = Cells(LG + 2, Cells.Columns.Count).End(xlToLeft).Column + 1
DERLNG = Cells(LG + 5, 1).End(xlDown).Row

tabz = Range("Jours_fériés_date")
tabd = Range(Cells(LG + 4, 2), Cells(DERLNG, DERNCOL)).Value

Debug.Print "TABD"
Debug.Print tabd(1, 1)
Debug.Print tabd(1, 2)
Debug.Print tabd(1, 3)

Debug.Print "TABZ"
Debug.Print tabz(1, 1)
Debug.Print tabz(2, 1)
Debug.Print tabz(3, 1)

For i = LBound(tabz) To UBound(tabz)
        On Error Resume Next

        k = Application.Match(tabz(i, 1), Application.Index(tabd), 0)

        If ERR.Number = 0 Then
            Set plage = Range(Cells(LG, k + 1), Cells(DERLNG, k + 2))
            plage.Interior.Color = vbYellow
        End If
        On Error GoTo 0
    Next i
End Sub

le problème c'est que Application.Index(tabd), 0), ne fonctionne pas a mon avis, k indique toujours 0

voici le debug.print, qui est OK

TABD
01/01/2023 

02/01/2023 
TABZ
01/01/2023 
09/04/2023 
10/04/2023

avez vous une dée du pourquoi cela ne fonctionne pas

Merci

bonjour,

dans le code tel que tu l'as mis, tabd2 n'est pas défini (tu as mis son initialisation en commentaire)

j'ai re simplifié

re-bonjour,

peux-tu mettre un fichier avec ta feuille qui contient le tableau et celle qui contient tes jours fériés ?

Rechercher des sujets similaires à "vba application match index"