Bonjour à vous,
je vous contacte car je me casse la tête depuis plusieurs jours sur une macro qui est sensée me permettre en rentrant une plage de donnée (variable en nombre de ligne) sur un onglet "Accueil" de créer un TCD sur un onglet dont le nom varie (à chaque fois que l'on lance la macro, on passe à la référence suivante) et qui est en relation avec une liste de références dans un onglet "journal"
- J'espère m'êt're fait comprendre -

voilà ce que j'ai fait pour l'instant

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Sub TCDRef()
 
    Dim indice As Integer
    Dim row As Long
    Dim TCDName As String
    Dim TCDRange As Range
    Dim TCDEmpl As Range
    Dim NomOnglet As String
 
 
    'Dértermination de l'indice de la référe,ce à traiter
    Sheets("Journal").Select
    indice = Range("D2").Value
 
    'Détermination du numéro de la dernière ligne.
    Sheets("Accueil").Select
    row = Cells(1, 1).CurrentRegion.Rows.Count
 
    ThisWorkbook.Sheets("Journal").Range("F2").Value = row
 
    'Détermination du nom du TCD à créer
    TCDName = "PivotTable" & Sheets("Journal").Range("D2").Value
 
    'Détermination du nom de l'onglet
    Sheets("Journal").Select
    NomOnglet = Range("B" & indice).Value
 
 
    'Création et renommage d'un onglet
    Sheets.Add
    ActiveSheet.Name = NomOnglet
    Sheets(NomOnglet).Move Before:=Sheets("Journal")
 
    'Détermination de la plage de cellule
    Sheets("Accueil").Select
    Set TCDRange = worksheets("Accueil").Range("R1C2:R" & row &"C19")  
 
    'Emplacement du TCD
    Sheets(NomOnglet).Select
    Set TCDEmpl = Sheets(NomOnglet).Range("R2C2")
 
    'Création du TCD
 
 
        Sheets(NomOnglet).Select
 
        ActiveSheet.PivotCaches.Add(SourceType:=xlDatabase, _
        SourceData:=TCDRange).CreatePivotTable , _
        TableDestination:=TCDEmpl, _
        TableName:=TCDName
 
    End Sub
Mais ça bloque...

L'erreur doit venir de mon sourcedate, tabledestination ou table name mais je n'y arrive pas malgrédes heures à parcourir les forums...

Ah et au passage, je n'arrive pas à appeler la méthode par un ActiveWorkbook, je dois faire ActiveSheet et je ne comprends pas pourquoi...

En vous remerciant par avance de votre aide...