Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri d'un champ semaine en TCD

3 réponses
Avatar
Bruno RCSC
Bonjour,

Sous Excel 2002,

J'ai crée un TCD basique qui calcule une somme par type de prestations par semaines.
Par défaut, les semaines s'affichent dans l'ordre croissant (1,2,3, ..52).
J'ai vu que je pouvais inverser (52,51, ...1).

Question : peux t'on choisir le numéro de semaine de la 1ère colonne pour rendre
l'affichage glissant ?
Aujourd'hui, je voudrais que ma première colonne commence au numéro de semaine 40 (la
dernière serait la 39).

Merci pour vos réponses.

BH

3 réponses

Avatar
isabelle
test

Le 2010-10-14 16:59, Bruno RCSC a écrit :
Bonjour,

Sous Excel 2002,

J'ai crée un TCD basique qui calcule une somme par type de prestations par semaines.
Par défaut, les semaines s'affichent dans l'ordre croissant (1,2,3, ..52).
J'ai vu que je pouvais inverser (52,51, ...1).

Question : peux t'on choisir le numéro de semaine de la 1ère colonne pour rendre
l'affichage glissant ?
Aujourd'hui, je voudrais que ma première colonne commence au numéro de semaine 40 (la
dernière serait la 39).

Merci pour vos réponses.

BH


Avatar
isabelle
bonjour Bruno,

en supposant qu'il n'y ait qu'un seul tcd sur la feuille,

[code]
Option Base 1
Sub Ordre_Affichage()
Dim t1() As Integer, tp
Dim x As Integer, i As Integer, k As Integer, p1 As Integer, p2 As Integer, v As Integer
Dim monPivIt As Object
Application.ScreenUpdating = False

For Each monPivIt In ActiveSheet.PivotTables(1).PivotFields(1).PivotItems
x = x + 1
ReDim Preserve t1(x)
t1(x) = monPivIt
Next

For i = 1 To UBound(t1)
x = i
For k = x + 1 To UBound(t1)
If t1(k) <= t1(x) Then x = k
Next k
If i <> x Then tp = t1(x): t1(x) = t1(i): t1(i) = tp
Next i

For i = 1 To UBound(t1)
ActiveSheet.PivotTables(1).PivotFields(1).PivotItems("" & t1(i)).Position = i
Next

v = CDbl(InputBox("Entrer la valeur du champ de ligne (no. de semaine)"))
p1 = Application.Match(v, t1, 0)

For i = 1 To UBound(t1)
If i >= p1 Then
p2 = p2 + 1
ActiveSheet.PivotTables(1).PivotFields(1).PivotItems("" & t1(i)).Position = p2
End If
Next

Application.ScreenUpdating = True
End Sub
[/code]

isabelle


Le 2010-10-14 16:59, Bruno RCSC a écrit :
Bonjour,

Sous Excel 2002,

J'ai crée un TCD basique qui calcule une somme par type de prestations par semaines.
Par défaut, les semaines s'affichent dans l'ordre croissant (1,2,3, ..52).
J'ai vu que je pouvais inverser (52,51, ...1).

Question : peux t'on choisir le numéro de semaine de la 1ère colonne pour rendre
l'affichage glissant ?
Aujourd'hui, je voudrais que ma première colonne commence au numéro de semaine 40 (la
dernière serait la 39).

Merci pour vos réponses.

BH


Avatar
Bruno RCSC
Bonsoir Isabelle,

Je ne suis pas certain d'avoir tout compris mais je vais essayer de mettre en oeuvre
votre proposition et je reviendrai vers vous..

BH

"isabelle" a écrit dans le message de news:
i9cftt$pnf$
bonjour Bruno,

en supposant qu'il n'y ait qu'un seul tcd sur la feuille,

[code]
Option Base 1
Sub Ordre_Affichage()
Dim t1() As Integer, tp
Dim x As Integer, i As Integer, k As Integer, p1 As Integer, p2 As Integer, v As
Integer
Dim monPivIt As Object
Application.ScreenUpdating = False

For Each monPivIt In ActiveSheet.PivotTables(1).PivotFields(1).PivotItems
x = x + 1
ReDim Preserve t1(x)
t1(x) = monPivIt
Next

For i = 1 To UBound(t1)
x = i
For k = x + 1 To UBound(t1)
If t1(k) <= t1(x) Then x = k
Next k
If i <> x Then tp = t1(x): t1(x) = t1(i): t1(i) = tp
Next i

For i = 1 To UBound(t1)
ActiveSheet.PivotTables(1).PivotFields(1).PivotItems("" & t1(i)).Position = i
Next

v = CDbl(InputBox("Entrer la valeur du champ de ligne (no. de semaine)"))
p1 = Application.Match(v, t1, 0)

For i = 1 To UBound(t1)
If i >= p1 Then
p2 = p2 + 1
ActiveSheet.PivotTables(1).PivotFields(1).PivotItems("" & t1(i)).Position = p2
End If
Next

Application.ScreenUpdating = True
End Sub
[/code]

isabelle


Le 2010-10-14 16:59, Bruno RCSC a écrit :
Bonjour,

Sous Excel 2002,

J'ai crée un TCD basique qui calcule une somme par type de prestations par
semaines.
Par défaut, les semaines s'affichent dans l'ordre croissant (1,2,3, ..52).
J'ai vu que je pouvais inverser (52,51, ...1).

Question : peux t'on choisir le numéro de semaine de la 1ère colonne pour rendre
l'affichage glissant ?
Aujourd'hui, je voudrais que ma première colonne commence au numéro de semaine 40
(la
dernière serait la 39).

Merci pour vos réponses.

BH