TCD en VBA - VB/VBA/VBS - Programmation
Marsh Posté le 28-06-2012 à 07:24:03
Bonjour,
il faut enlever le nom de l'onglet car là, tu créés une nouvelle feuille qui ne s'appelle pas "Sheet4".
Code :
|
Ton TCD s'insérera en cellule A3 d'une nouvelle feuille.
Marsh Posté le 28-06-2012 à 09:32:43
vave a écrit : Bonjour,
|
D'accord, merci beaucoup de ta reponse, mais il reste un souci : dans mon code, je selectionnais la feuille 4 en utilisant
Citation : Sheets("Sheet4" ).Select |
. Y'a-t-il une commande pour selectionner la derniere feuille creee ?
Sinon, j'ai un autre souci : quand je veux enregistrer le document excel apparait le message :
Citation : The following features, click No, and then choose a macro-enabled file type in the File Type list. |
.
En gros, il me demande d'enregistrer dans une version d'excel qui n'autorise pas les macros. Dans tous les cas, quand je reouvre mon fichier, plus moyen d'executer ma macro. Quelqu'un a-t-il une idee d'ou provient le souci ?
Merci d'avance, je debute en vba et j'espere progresser assez vite..
Cordialement.
Marsh Posté le 28-06-2012 à 09:40:18
Tu n'as pas besoin de selectionner la dernière feuille créée, ça se fait tout seul.
Tu n'as qu'à supprimer cette ligne :
Code :
|
Pour ton autre soucis, il faut que ton fichier soit enregistré avec l'extension "*.xlsm" (prenant en charge les macros) => fichier / enregistrer sous / type = *.xlsm
Marsh Posté le 28-06-2012 à 10:17:36
Mais comment faire pour enregister en ce format : quand je veux enregister, j'ai le choix entre sauvegarder en differents types sans savoir sous quels types il y a le *.xlsm.
Et une fois au'on a code la macro elle s'enregistre tout de suite ?
Merci.
Marsh Posté le 28-06-2012 à 11:55:25
C'est bon, j'ai reussi !! Tout venait de mon incomprehension de l'anglais (macro enable je pensais que ca voulait dire qu'on ne les autorisait pas).
Bref merci beaucoup de votre aide!
Marsh Posté le 27-06-2012 à 12:46:04
Bonjour a tous,
J'ecris sur ce forum pour la premiere fois car j'ai un souci avec VBA (je previens je suis novice). Je veux creer une macro avec dedans un tableau croise dynamique. Pour ce faire, j'enregistre d'abord une macro pour voir comment ca marche derriere tout ca ? Et quand je veux l executer, il apparait "run time error 1004 : application defined or object defined error".
Quand je veux debugger il m'affiche le code :
Sub TCD_CUMP()
'
' TCD_CUMP Macro
'
'
Range("A1" ).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R7225C52", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Sheet4!R3C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion12
Sheets("Sheet4" ).Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Country" )
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1" ).PivotFields("GOLD Item Nbr" )
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Product" )
.Orientation = xlPageField
.Position = 1
End With
ActiveSheet.PivotTables("PivotTable1" ).AddDataField ActiveSheet.PivotTables( _
"PivotTable1" ).PivotFields("Inv Qty" ), "Sum of Inv Qty", xlSum
ActiveSheet.PivotTables("PivotTable1" ).AddDataField ActiveSheet.PivotTables( _
"PivotTable1" ).PivotFields("Tot Price DZD" ), "Count of Tot Price DZD", xlCount
With ActiveSheet.PivotTables("PivotTable1" ).PivotFields( _
"Count of Tot Price DZD" )
.Caption = "Sum of Tot Price DZD"
.Function = xlSum
End With
ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Sum of Tot Price DZD" ). _
Orientation = xlHidden
ActiveSheet.PivotTables("PivotTable1" ).AddDataField ActiveSheet.PivotTables( _
"PivotTable1" ).PivotFields("Tot Invoice DZD" ), "Count of Tot Invoice DZD", _
xlCount
With ActiveSheet.PivotTables("PivotTable1" ).PivotFields( _
"Count of Tot Invoice DZD" )
.Caption = "Sum of Tot Invoice DZD"
.Function = xlSum
End With
ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Product" ).ClearAllFilters
ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Product" ).CurrentPage = _
"CHEMICAL"
ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Country" ).ClearAllFilters
ActiveSheet.PivotTables("PivotTable1" ).PivotFields("Country" ).CurrentPage = _
"ALGERIA"
Sheets("Sheet1" ).Select
End Sub
En surlignant en jaune la partie :
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Sheet1!R1C1:R7225C52", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Sheet4!R3C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion12
Est-ce que quelqu'un a une idee d'ou peut venir l'erreur ?
Merci d'avance,
PS : Je travaille sur un clavier qwerty d'ou les accents manquants>