Référence à un tableau en VBA format R1C1

Bonjour à tous,

Je suis nouveau sur ce forum car en général je trouve les réponses à mes questions sans avoir besoin de poster : il y a souvent quelqu'un qui a eu la même interrogation que moi ...

Mais la je sèche, sur un problème a priori trivial, et ça m’énerve !!!

Je m'explique :

Je reprends une macro VBA codé par un ancien collègue, j'ai donc obligation de suivre la structure du code,

Mon problème :

Je tente de modifier cette formule :

Call SetFormula(iCurrentCol, iLastLine, "Perimetre", "=INDEX(Rules_Full!RC4:RC4,MATCH(""*"" & (Rule) & ""*"",Rules_Full!RC7:RC7,0))")

qui renvoi vers ce procédure :

Private Sub SetFormula(i As Integer, iLast As Integer, sTitle As String, sFormula As String)

Sheets(1).Cells(1, i) = sTitle

ActiveWorkbook.Names(Replace(sTitle, " ", "_")).RefersToR1C1 = Sheets(1).Range(Cells(2, i), Cells(iLast, i)) '

Range(Sheets(1).Cells(2, i), Sheets(1).Cells(iLast, i)).FormulaR1C1 = sFormula '

Mais en fait mon "seul" blocage vient de la traduction de la formule :

A l'execution du code cette formule (VBA) :

Call SetFormula(iCurrentCol, iLastLine, "Perimetre", "=INDEX(Rules_Full!RC4:RC4,MATCH(""*"" & (Rule) & ""*"",Rules_Full!RC7:RC7,0))")

Va se transformer en : (Référence à la Cellule D2 et Cellule G2)

=INDEX(Rules_Full!$D2:$D2;EQUIV("*" & (Rule) & "*";Rules_Full!$G2:$G2;0))

et j'aimerais avoir : (Référence à toute la colonne D et toute la colonne G)

=INDEX(Rules_Full!D:D;EQUIV("*" & (Rule) & "*";Rules_Full!G:G;0))

Ou mieux : (Référence à la colonne du tableau)

=INDEX(Q_report_RULES_FULL[Rule Perimeter];EQUIV("*" & (Rule) & "*";Q_report_RULES_FULL[Rule Name];0))

Mais je n'arrive pas à trouver la correspondance exact entre le VBA (R1C1) et la feuille Excel en français ...

J'ai lu plein de forums sur le format R1C1, et fait plein de tests, mais je ne trouve pas de solution pour le moment ...

Merci à tous de votre aide.

Pierre

bonjour,

as-tu essayé ceci ?

Call SetFormula(iCurrentCol, iLastLine, "Perimetre", "=INDEX(Q_report_RULES_FULL[Rule Perimeter],MATCH(""*"" & (Rule) & ""*"",Q_report_RULES_FULL[Rule Name],0))
")

Eureka, et merci beaucoup !!!

Rechercher des sujets similaires à "reference tableau vba format r1c1"