Nommer une ZONE EN VBA

EMMANUEL

XLDnaute Junior
Bonjour
j'ai une macro qui me crée automatiquement un TCD
Un onglet où l'on trouve un tableau avec la fonction liredonnéestabcroisdynamique
Seulement dans ma formule, je fais appel à une plage nommée 'TCD'
Chaque fois que je lance la macro, elle m'écrase les données et crée un nouvel onglet avec le tableau croisé dynamique.
Je voudrais (cf ci-dessous), insérer la formule me permettant de séléctionner le tableau croisé et le renommer en 'TCD'

J'ai essayé ceci mais cela marche que si l'onglet s'appelle feuille1 et que si le tableau a toujours la même taille (ce qui n'est pas le cas)

il faudrait que je corrige cette formule!!!!??

Selection.CurrentRegion.Select
ActiveWorkbook.Names.Add Name:='TCD', RefersToR1C1:='=Feuil1!R3C1:R252C6' :unsure:


MERCI
 

Bebere

XLDnaute Barbatruc
bonjour
j'ai essayé ce qui suit et ok

Public Sub essaitcd()
'sélectionne feuille avec tcd(donner un nom à la feuille)
Sheets('TcdVentes2001').Select
'sélectionne une cellule non vide
Range('B5').CurrentRegion.Select
'compte ligne sélection
L = Selection.Rows.Count
'compte colonne sélection
C = Selection.Columns.Count
'attribue le nom à la sélection
ActiveWorkbook.Names.Add Name:='TcdVentes', RefersToR1C1:='=TcdVentes2001!R4C2:R' & L & 'C' & C & ''
End Sub
à bientôt
 

EMMANUEL

XLDnaute Junior
Désolé Hervé et BEBERE
Je ne crois pas avoir bien compris
je crée un tcd en vba
excel attribue pas défaut comme nom d'onglet feuille1...

Ensuite je dois nommer la plage du Tableau croisé dynamique
Zone = TCD

Sheets(Sheets.Count).Range('B5').CurrentRegion.Name = 'TCD'

Cette formule va sélectionner par défaut le premier onglet du classeur
et non l'onglet crée en vba




:eek:hmy:
 

pat1545.

XLDnaute Accro
Salut,
pas sur d'avoir compris mais:

dès la création du tcd , tu peux alors renommer la feuille non ?
voilà ce que donne l'enregistreur :

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
'Feuil1!R1C5:R12C6').CreatePivotTable TableDestination:='', TableName:= _
'Tableau croisé dynamique1'
' ici le nom de la feuille
ActiveSheet.Name = 'test'
' la déplacer:
Worksheets('test').Move _
after:=Worksheets('feuil3')

Patrick
 

EMMANUEL

XLDnaute Junior
dernière solution: je crée un onglet 'TCD' et à chaque lancement de la macro, il efface tout, on peux alors utiliser le programme de BEBERE



Sheets('TCD').Select
Cells.Select
Selection.Clear
Range('A1').Select

Merci BEBERE ,le forum
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 040
Membres
104 010
dernier inscrit
Freba