bonjour

en créant un tableau croisé dynamique, Excel m'a généré le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Genere_tcd()
 
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
 
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "F_SNC!R1C1:R307C9").CreatePivotTable TableDestination:=Sheets("Feuil2").Range("A1"), _
        TableName:="TabCroiDyn"
 
End Sub
en fait, Excel ne se sert pas vraiment de sa sélection et prend, en dur, la plage de la cellule A1 à la cellule I307
mais ce tableau n'a pas un nombre de lignes fixé (mais 9 colonnes), je veux donc rendre dynamique cette plage

je me lance en rajoutant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Dim nbLignes As Integer
Dim myRange As Range
 
nbLignes = Selection.Rows.Count
Set myRange = Sheets("Feuil1").Range("A1:I" & nbLignes)
mais lorsque j'écris:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        myRange).CreatePivotTable
cela plante
j'ai essayé plusieurs méthodes/propriétés et ça ne fonctionne pas

comment utiliser et/ou définir l'objet "Range" dans "Pivotcaches.Add"?

merci! (ça urge)