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 AJ_CONNEC_SEG()
Dim CurrentWb As Excel.Workbook
Dim SheetRCP As Excel.Worksheet
Dim WSTCD As Excel.Worksheet
Dim WS As Excel.Worksheet
Dim sc As SlicerCache
Dim MonTCD As PivotTable
Dim k, col As Integer
Dim Pvt As PivotTable
Dim SH As Worksheet
Set CurrentWb = ThisWorkbook
Set SheetRCP = CurrentWb.Worksheets("RECAP")
Set WS = CurrentWb.Sheets("Table source")
'Plutôt que de recréer des variable, tu peux aussi utiliser les codenames des feuilles (par défaut Feuil1, Feuil2,... mais tu peux les remplacer dans les propriété des feuilles)
SheetRCP.Range("A1").EntireRow.RowHeight = 83
' WS.Range(WS.Cells(1, 2), WS.Cells(1, 3)).Copy
' SheetRCP.Range(SheetRCP.Cells(1, 1), SheetRCP.Cells(1, 2)).PasteSpecial Paste:=xlPasteValues
' For k = 1 To 2 'SheetRCP.Range(SheetRCP.Cells(1, 1), SheetRCP.Cells(1, 2)).Columns.Count
' SheetRCP.Range(SheetRCP.Cells(1, k), SheetRCP.Cells(1, k)).EntireColumn.ColumnWidth = 23
' Next k
With SheetRCP.Range("A1:A2")
.Value = WS.Range("A1:A2").Value
.EntireColumn.ColumnWidth = 23
End With
'Penses à déclarer tes variables
SEGVAL = WS.Cells(1, 4).Value
Set WSTCD = CurrentWb.Worksheets("TCD_" & SEGVAL)
Set MonTCD = WSTCD.PivotTables("TCD_" & SEGVAL)
'Set SheetRCP = CurrentWb.Worksheets("RECAP") 'Déjà fait au début
For col = 1 To 2 'SheetRCP.Range(SheetRCP.Cells(1, 1), SheetRCP.Cells(1, 2)).Columns.Count 'de la colonne 1 à la colonne 2, le résultat sera 2 colonnes
With SheetRCP.Cells(1, col) ' attention ici, tu n'as pas préciser la feuille sur laquelle tu travailles, par défaut c'est l'onglet actif qui sera utilisé
namecol = .Value
x = .Left
y = .Top
w = .Width
h = .Height
End With
Set sc = CurrentWb.SlicerCaches.Add2(MonTCD, namecol)
sc.Slicers.Add SheetRCP, , namecol, namecol, y, x, w, h
Next col |
Partager