TCD - SourceData dans un Range ?
Bonjour,
J'ai un tableau croisé dynamique déjà défini.
Mon problème se porte sur la manière d'envoyer la plage de données du TCD vers un objet Range.
Sachant que le format de SourceData est Feuil1!L1C1:L13C5 j'ai écrit
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Sub Test()
Dim strSource As String
Dim strFeuille As String
Dim strPlage As String
Dim sh As Worksheet
Dim rng As Range
strSource = ActiveSheet.PivotTables("TCD").SourceData
strFeuille = Left(strSource, InStr(strSource, "!") - 1)
strPlage = Right(strSource, Len(strSource) - InStr(strSource, "!"))
Set sh = ActiveWorkbook.Worksheets(strFeuille)
Set rng = sh.Range(strPlage)
...
End Sub |
Bien entendu l'objet Range n'accepte pas la référence.
J'ai essayé avec Evaluate mais le pb est le même...
Comment peut-on transformer la référence L1C1:L13C5 en A1:E13 ?
Par avance merci de l'aide que vous m'apporterez
Seb
ConvertFormula... La solution !
Extra Michel, c'est exactement ce qu'il me fallait :king:
J'ai à peine modifié le code pour éviter les remplacements superflus sur le nom de la feuille. Ce qui donne dans mon cas
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub MaJ_LibelleTCD()
Dim strSource As String, strFeuille As String, strPlage As String
Dim sh As Worksheet, rng As Range
strSource = Worksheets("TCD").PivotTables("TCD").SourceData
strFeuille = Left(strSource, InStr(strSource, "!") - 1)
strPlage = Replace(Right(strSource, Len(strSource) - _
InStr(strSource, "!")), "L", "R")
strSource = Application.ConvertFormula(Formula:=strFeuille & "!" & _
strPlage, fromReferenceStyle:=xlR1C1, _
toReferenceStyle:=xlA1, toAbsolute:=xlAbsolute)
strPlage = Right(strSource, Len(strSource) - InStr(strSource, "!"))
Set sh = ActiveWorkbook.Worksheets(strFeuille)
Set rng = sh.Range(strPlage)
...
End Sub |
Encore merci...