VBA Erreur 1004
Fermé
srouches
-
13 janv. 2011 à 10:04
cousinhub29 Messages postés 977 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 21 décembre 2024 - 13 janv. 2011 à 11:21
cousinhub29 Messages postés 977 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 21 décembre 2024 - 13 janv. 2011 à 11:21
A voir également:
- VBA Erreur 1004
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Incompatibilité de type vba ✓ - Forum Programmation
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
1 réponse
cousinhub29
Messages postés
977
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
21 décembre 2024
348
13 janv. 2011 à 11:21
13 janv. 2011 à 11:21
Bonjour,
Petite précision, tout d'abord...
Lorsque l'on veut faire un TCD, il vaut mieux éviter de prendre des colonnes entières en référence, la taille du fichier s'en ressentira....
Ensuite, dans un code, même enregistré par l'enregistreur de macro, tu obtiendras cette erreur "1004", sans doute un signe que même Excel n'en veut pas, des colonnes entières...
Tu peux créer ta base de référence de façon dynamique (via une formule du style "DECALER"), ou la définir en tout début de code
Ensuite, tu prends en référence cette "base"
De plus, dans ton code initial, tu parles toujours "d'ActiveSheet"...
Or, tu insères le TCD dans une autre feuille, donc le TCD n'est pas dans la feuille active...
Essaie avec ce code :
Bon courage
Petite précision, tout d'abord...
Lorsque l'on veut faire un TCD, il vaut mieux éviter de prendre des colonnes entières en référence, la taille du fichier s'en ressentira....
Ensuite, dans un code, même enregistré par l'enregistreur de macro, tu obtiendras cette erreur "1004", sans doute un signe que même Excel n'en veut pas, des colonnes entières...
Tu peux créer ta base de référence de façon dynamique (via une formule du style "DECALER"), ou la définir en tout début de code
Ensuite, tu prends en référence cette "base"
De plus, dans ton code initial, tu parles toujours "d'ActiveSheet"...
Or, tu insères le TCD dans une autre feuille, donc le TCD n'est pas dans la feuille active...
Essaie avec ce code :
Sub DMS() Range("A1:D" & [A65000].End(xlUp).Row).Name = "base" ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "base").CreatePivotTable TableDestination:= _ "'[modèle fichier global.xls]total'!R5C1", TableName:= _ "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10 With Sheets("total") .PivotTables("Tableau croisé dynamique1").AddFields RowFields:= _ Array("NOM AGENT", "Données"), ColumnFields:="NOM CLIENT FACTURE" With .PivotTables("Tableau croisé dynamique1").PivotFields("CA") .Orientation = xlDataField .Caption = "Somme de CA" .Position = 1 .Function = xlSum End With With .PivotTables("Tableau croisé dynamique1").PivotFields("QUANTITE") .Orientation = xlDataField .Caption = "Somme de QUANTITE" .Function = xlSum End With End With End Sub
Bon courage