VBA Erreur 1004
Fermé
srouches
-
13 janv. 2011 à 10:04
cousinhub29 Messages postés 953 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 10 novembre 2024 - 13 janv. 2011 à 11:21
cousinhub29 Messages postés 953 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 10 novembre 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 1004 vba ✓ - Forum VB / VBA
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 38 free ✓ - Forum Mobile
1 réponse
cousinhub29
Messages postés
953
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
10 novembre 2024
344
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