Tableau croisé dynamique
Résolu/Fermé
Maxxikilla
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
-
Modifié par Maxxikilla le 10/06/2013 à 13:42
WeaponEDGE - 10 juin 2013 à 14:55
WeaponEDGE - 10 juin 2013 à 14:55
A voir également:
- Tableau croisé dynamique
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau croisé dynamique ne prend pas toutes les données ✓ - Forum Excel
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif suivant. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des 4 premières colonnes. cinq valeurs manquent dans le tableau suivant. retrouvez-les dans votre tableau puis reportez-les, arrondies à l’entier le plus proche, dans la zone de réponse. - Forum Excel
- Tableau word - Guide
5 réponses
Bonjour,
Je pense que le problème vient du fait que tu jongles avec 2 format différent :
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row
Ta formule ci dessus te permet de déterminer la dernière ligne de ton tableau par rapport à la colonne "A".
SourceData:= "'Synthèse-AA'!R10C2:R" & nbl12 & "C4",
Le Source Data ci dessus permet de déterminé les limites de ton tableau mais il est au format R1C1. Les réfenres au Format R1C1 dépendent de la cellule active au moment ou la macro est lancé.
Prenons un exemple : Supposons que ton tableau fasse 100 Lignes et 3 colonnes :
Si la cellule active est A1 et que tu fais ta sélection celà donnera :
Sheet1'!RC:R100C3
Si la cellule active est A2 et que tu fais ta sélection celà donnera :
Sheet1'!R-1C:R99C3
Si la cellule active est B1 et que tu fais ta sélection celà donnera :
Sheet1'!RC-1:R100C2
Conclusion, tu ne peux pas utiliser ta variale nbl2 avec le Format R1C1.
Pour résoudre ton problème il faut traduire la sélection avec le même format :
par exemple : SourceData:= "'Synthèse-AA'!A1:G" & nbl12, si ton tableau va de la colonne "A" à "G".
WepaonEDGE
Je pense que le problème vient du fait que tu jongles avec 2 format différent :
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row
Ta formule ci dessus te permet de déterminer la dernière ligne de ton tableau par rapport à la colonne "A".
SourceData:= "'Synthèse-AA'!R10C2:R" & nbl12 & "C4",
Le Source Data ci dessus permet de déterminé les limites de ton tableau mais il est au format R1C1. Les réfenres au Format R1C1 dépendent de la cellule active au moment ou la macro est lancé.
Prenons un exemple : Supposons que ton tableau fasse 100 Lignes et 3 colonnes :
Si la cellule active est A1 et que tu fais ta sélection celà donnera :
Sheet1'!RC:R100C3
Si la cellule active est A2 et que tu fais ta sélection celà donnera :
Sheet1'!R-1C:R99C3
Si la cellule active est B1 et que tu fais ta sélection celà donnera :
Sheet1'!RC-1:R100C2
Conclusion, tu ne peux pas utiliser ta variale nbl2 avec le Format R1C1.
Pour résoudre ton problème il faut traduire la sélection avec le même format :
par exemple : SourceData:= "'Synthèse-AA'!A1:G" & nbl12, si ton tableau va de la colonne "A" à "G".
WepaonEDGE
Maxxikilla
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
10 juin 2013 à 13:46
10 juin 2013 à 13:46
Je vais m'expliquer car ce que je demande n'est pas très clair toute reflexion faite.
J'ai une variable nbl2 qui compte le nombre de ligne.
Jaimerai, a partir d'un onglet, faire un tableau croisé dynamique. Le hic, c'est que le nombre de ligne varie. J'aimerai savoir comment ca séecrit dans le source data?
SourceData:= _
"'Synthèse-AA'!R10C2:R" & nbl12 & "C4"
? car cette écriture ne fonctionne pas ..
Merci
J'ai une variable nbl2 qui compte le nombre de ligne.
Jaimerai, a partir d'un onglet, faire un tableau croisé dynamique. Le hic, c'est que le nombre de ligne varie. J'aimerai savoir comment ca séecrit dans le source data?
SourceData:= _
"'Synthèse-AA'!R10C2:R" & nbl12 & "C4"
? car cette écriture ne fonctionne pas ..
Merci
Maxxikilla
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
10 juin 2013 à 14:35
10 juin 2013 à 14:35
Ah oui, je comprend. Je me suis un peu mélangé entre le web et l'enregistreur de macro
Sheets("Synthèse-AA").Select
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row - 1
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Synthèse-AA!B1:E" & nbl12).CreatePivotTable _
TableDestination:="Client!A1:E" & nbl2, TableName:="TCD", _
DefaultVersion:=xlPivotTableVersion10
J'ai toujours un problème, Run time error'5'. Ca me met dans l'onglet ou je veux faire mon TCD, mais il reste vierge...
Sheets("Synthèse-AA").Select
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row - 1
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Synthèse-AA!B1:E" & nbl12).CreatePivotTable _
TableDestination:="Client!A1:E" & nbl2, TableName:="TCD", _
DefaultVersion:=xlPivotTableVersion10
J'ai toujours un problème, Run time error'5'. Ca me met dans l'onglet ou je veux faire mon TCD, mais il reste vierge...
Maxxikilla
Messages postés
40
Date d'inscription
mardi 4 juin 2013
Statut
Membre
Dernière intervention
23 juillet 2013
10 juin 2013 à 14:41
10 juin 2013 à 14:41
C'est bon, j'ai réussi.
POur ceux que ca intéresse, voici mon code
Sheets("Synthèse-AA").Select
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row - 1
Range("B1:E" & nbl2).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Synthèse-AA!R1C2:R" & nbl2 & "C5", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Client!R1C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion14
Sheets("Client").Select
Cells(1, 1).Select
Merci WeaponEDGE de m'avoir aidé !! c'est grace à toi que j'ai trouvé !
Bonne fin de journée !
POur ceux que ca intéresse, voici mon code
Sheets("Synthèse-AA").Select
nbl2 = Range("A65536").End(xlUp).Offset(1, 0).Row - 1
Range("B1:E" & nbl2).Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Synthèse-AA!R1C2:R" & nbl2 & "C5", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Client!R1C1", TableName:="PivotTable1", DefaultVersion _
:=xlPivotTableVersion14
Sheets("Client").Select
Cells(1, 1).Select
Merci WeaponEDGE de m'avoir aidé !! c'est grace à toi que j'ai trouvé !
Bonne fin de journée !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
De rien on est là pour ça.
En relisant ton code tu peux même optimiser ta variable. voici le code
nbl2 = Range("A65536").End(xlUp).Row
Pour ma part je préfère utiliser le code ci dessous :
Variable = Sheets("Sheet1").cells(65536,1).end(xlup).row
Avec ce code quand tu relis ta macro tu sais de quelle feuille il s'agit.
Quant au terme Cells, la position de la cellule est uniquement numérique et donc tu peux jouer plus facilement avec les variables pour déterminer la position.
Range("B1") = [B1] = Cells(1,2)
En relisant ton code tu peux même optimiser ta variable. voici le code
nbl2 = Range("A65536").End(xlUp).Row
Pour ma part je préfère utiliser le code ci dessous :
Variable = Sheets("Sheet1").cells(65536,1).end(xlup).row
Avec ce code quand tu relis ta macro tu sais de quelle feuille il s'agit.
Quant au terme Cells, la position de la cellule est uniquement numérique et donc tu peux jouer plus facilement avec les variables pour déterminer la position.
Range("B1") = [B1] = Cells(1,2)