divers pb macro Excel et TCD

aramis33

XLDnaute Nouveau
Bonjour,
j'extrais des données sous excel et je voudrais en faire plusieurs choses mais je bloque :

je fais une macro via l'enregisteur de macro pour mettre en forme les données .
cette macro fait : suppression de colonnes puis "nomage" de colonne, copie des données sur une autre feuille puis mise en forme toute bête sous forme TCD, dans le but de copier ces données dans une autre feuile.

problème pour moi :
-l'extraction peut contenir de 10 à 400 lignes formatées de la même manière
-lorsque je génére mon TCD je voudrais prendre que les lignes actives
- et mon TCD ne me conserve pas la somme des donnée mais le nombre des données (colonne tantièmes)


Sub MacroSP3()
'
' MacroSP3 Macro
' Macro enregistrée le 09/06/2009 par
'
' Touche de raccourci du clavier: Ctrl+a
'
Range(SELECTION, ActiveCell.SpecialCells(xlLastCell)).Select
SELECTION.Copy
Sheets.Add
ActiveSheet.Paste
Columns("B:B").Select
Application.CutCopyMode = False
SELECTION.Delete Shift:=xlToLeft
Range("C1").Select
ActiveCell.FormulaR1C1 = "NOM"
Range("D1").Select
ActiveCell.FormulaR1C1 = "N°cop"
Columns("F:F").Select
SELECTION.Delete Shift:=xlToLeft
Range("A1").Select
Range(SELECTION, ActiveCell.SpecialCells(xlLastCell)).Select
Range(SELECTION, SELECTION.End(xlToLeft)).Select
Range(SELECTION, SELECTION.End(xlUp)).Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C1:R181C5").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"NOM"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Tantièmes"). _
Orientation = xlDataField
ActiveWorkbook.ShowPivotTableFieldList = False
End Sub


ensuite cerise sur le gateau copier les données du TCD vers une autre feuille XLSmai bon on verra + tard

Merci d'avance
 

aramis33

XLDnaute Nouveau
Re : divers pb macro Excel et TCD

Bonjour MJ13
voici le fichier (exemple.XLS) , la feuille avec le nom à rallonge est la feuille d'extraction de mon logiciel métiers généré automatiquement
les deux autres feuilles pour arriver à mon TCD.

Le deuxième fichier AG.XLS est le fichier de destination de mon TCD .
voila
Merci D'avance
Fred
 

aramis33

XLDnaute Nouveau
Re : divers pb macro Excel et TCD

Bonjour MJ13
voici le fichier (exemple.XLS) , la feuille avec le nom à rallonge est la feuille d'extraction de mon logiciel métiers généré automatiquement
les deux autres feuilles pour arriver à mon TCD.

Le deuxième fichier AG.XLS est le fichier de destination de mon TCD mais trop gros pour l'envoyer.
voila
Merci D'avance
Fred

11h39

bon j'ai trouvé pour la somme dans mon TCD

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Tantièmes"). _
Orientation = xlDataField
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre de Tantièmes").Function = xlSum
reste la commande pour selectionner le dernier enregistrement d'une liste variable est la copie du contenu du tableau vers une autre feuille si je peux abusé ... merci
 

Pièces jointes

  • exemple.xls
    25 KB · Affichages: 48
  • exemple.xls
    25 KB · Affichages: 54
  • exemple.xls
    25 KB · Affichages: 54
  • exemple final.xls
    45 KB · Affichages: 89
  • exemple final.xls
    45 KB · Affichages: 101
  • exemple final.xls
    45 KB · Affichages: 96
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : divers pb macro Excel et TCD

Bonjour Aramis

reste la commande pour selectionner le dernier enregistrement d'une liste variable

En général, on fait:

Code:
derligne=range("A65536").end(xlup).rows.row

avec A variable suivant la colonne (A= collone1, B= colonne2 etc...)

Mais en sélectionnant ton tableau et en faisant crl+*, tu dois sélectionner le tableau.

Ensuite, l'enregistreur de macros devrait t'aider.
 

aramis33

XLDnaute Nouveau
Re : divers pb macro Excel et TCD

Re,
Excuse je suis carrément debutant en VB, la commande je l'insere comment ?
ça remplace "Feuil1!R1C1:R300C5" ?

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Feuil1!R1C1:R300C5").CreatePivotTable TableDestination:="", TableName:= _
"Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _
"Nom"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Tantièmes"). _
Orientation = xlSum
ActiveWorkbook.ShowPivotTableFieldList = False

sinon aurais tu une commande magique pour selectionner que les colonnes active (non vide, la dernière dans ce cas) dans le TCD sans le total ou puis je le faire en faisant (à partir de A5)
Ctrl+Maj+ Fin puis Maj + Flèche haute 2 fois puis Ctrl+C via l'enregistreur de macro
parceque Ctrl + * selectionnee trop de chose mais je retient poour autre chose.
 

Discussions similaires

Réponses
1
Affichages
528

Statistiques des forums

Discussions
312 304
Messages
2 087 069
Membres
103 453
dernier inscrit
Choupi