Macro ne marche pas sous Excel 2016

Bonjour,

Sujet un peu identique à celui de MrJuice, je rencontre un problème avec une macro qui tourne très de mon côté, mais qui ne marche pas chez mon collègue (sous Excel 2016. Voici la macro

Sub ActualiserDonnees()

    'Actualisation des données
    ActiveWorkbook.RefreshAll
    Sheets("Resume").Range("A7:G1000").Clear
    'Sheets("Resume").Range("A7").Formula2R1C1 = "=UNIQUE(Tableau_complet[[Code]:[Nom]])"

    Sheets("Resume").Range("A7:A500").Formula2R1C1 = _
        "=INDEX(Tableau_complet[Code], MATCH(0, COUNTIF(R6C9:R[-1]C, Tableau_complet[Code]), 0))"
    Dim test As Integer
    test = 0
    For i = 7 To 500
        If test = 0 Then
            If IsError(Range("A" & i)) Then
                n = i
                test = 1
            End If
        End If
    Next i
    Range("A" & n & ":A500").Clear

    'Définition du nombre de lignes
    If Sheets("Resume").Range("A7").End(xlDown).Row = 1048576 Then
        DerniereCellule = 7
    Else
        DerniereCellule = Sheets("Resume").Range("A7").End(xlDown).Row
    End If

    Sheets("Resume").Range("B7:B" & DerniereCellule).FormulaR1C1 = _
        "=INDEX(Tableau_complet[Nom],MATCH(RC[-1],Tableau_complet[Code],0))"

    'Résumé
    Sheets("Resume").Range("C7:C" & DerniereCellule).FormulaR1C1 = _
        "=COUNTIFS(Tableau_complet[Code],""=""&RC[-2],Tableau_complet[Nom],""=""&RC[-1])"
    Sheets("Resume").Range("D7:D" & DerniereCellule).Formula2R1C1 = _
        "=SUMPRODUCT((Tableau_complet[Code]=RC[-3])*(Tableau_complet[Nom]=RC[-2])*(Tableau_complet[Montant]))"
    Sheets("Resume").Range("D7:D" & DerniereCellule).Style = "Currency"

    'Vérification qu'il n'y ait pas d'oubli
    Sheets("Resume").Range("D5").FormulaR1C1 = _
        "=IF(SUM(R[2]C:R" & DerniereCellule & "C)=SUM(Tableau_complet[Montant]),""OK"",""Problème"")"

    'Récupération des adresses mails
    Sheets("Resume").Range("F7:F" & DerniereCellule).FormulaR1C1 = _
        "=IF(INDEX(Mail[Destinataire 1],MATCH(RC[-5],Mail[Code],0))=0,"""",INDEX(Mail[Destinataire 1],MATCH(RC[-5],Mail[Code],0)))"
    Sheets("Resume").Range("G7:G" & DerniereCellule).FormulaR1C1 = _
        "=IF(INDEX(Mail[Destinataire 2],MATCH(RC[-6],Mail[Code],0))=0,"""",INDEX(Mail[Destinataire 2],MATCH(RC[-6],Mail[Code],0)))"

    'Copiage en dur des données
    Sheets("Resume").Columns("A:D").EntireColumn.AutoFit
    Sheets("Resume").Range("A7:D" & DerniereCellule).Copy
    Sheets("Resume").Range("A7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

    'Pour la cosmétique
    With Sheets("Resume").Range("A7:D" & DerniereCellule).Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .Weight = xlHairline
    End With
    Sheets("Resume").Range("D5").Select
End Sub

Chez mon collègue l'erreur arrive juste après l'actualisation des données, sur la ligne

Sheets("Resume").Range("A7:A500").Formula2R1C1 = _
        "=INDEX(Tableau_complet[Code], MATCH(0, COUNTIF(R6C9:R[-1]C, Tableau_complet[Code]), 0))"

Au départ je pensais qu'une des fonctions utilisées n'était pas disponible sous Excel 2016, mais elles le sont toutes (index, equiv et nb.si). Est-ce que c'est possible que le problème vienne de l'utilisation de tableau structuré ? Je préfère demander avant de me lancer une correction qui risque de ne pas marcher.

Merci d'avance,

Nicolas

Bonjour,
Pour commencer, la fonction Unique n'est pas disponible sous Excel 2016.
Sinon voir aide vba pour Formula2.
Tu veras ensuite pour le souci Index/Match.
Cdlt.

Bonjour Jean-Eric,

Merci pour ta réponse, effectivement au départ je passais par la fonction Unique mais la ligne est en commentaire justement parce qu'elle n'est pas disponible sous Excel 2016.

Je vais voir l'aide de Formula2, je vous tiens au courant si je trouve.

Nicolas

Rechercher des sujets similaires à "macro marche pas 2016"