Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Tri

sev31130

XLDnaute Impliqué
BONJOUR,

je ne comprends pas, et je vous joins un fichier,

vous verrez sur le tableau A j'ai une plage de 7 colonnes et de 20 lignes avec en tête, et donc un filtre par colonne,
je fais une demande de tri sur la dernière colonne, donc cela laisse supposer que tous les lignes sont trier du plus grand au plus petit...or la comme vous pourrez le constater, je demande le tri sur la colonne total et il n'y a que la colonne Numéros qui est trié ...ou est l'erreur ...dites moi la bêtise que j'ai fais, est ce que c est par rapport aux formules ? JE NE SAIS PLUS QUOI PENSER

merci par avance
Cdt
 

Pièces jointes

  • annuel.xls
    163 KB · Affichages: 71
  • annuel.xls
    163 KB · Affichages: 76

djidji59430

XLDnaute Barbatruc
Re : Tri

Bonjour,

Tu ne peux pas trier parceque ta formule en total fait reference aux cellules adjacentes, et tu refais le total des cellules adjacentes triées. Ça fait comme reference circulaire. Pour t'en sortir, tu dois copier ta colonne total, puis la recopier sur elle meme en choisissant copier les valeurs.
 

sev31130

XLDnaute Impliqué
Re : Tri

merci

voila je suis moins idiot comme cela, mais si tu regardes le tableau qui est sur la gauche du tableau A et tous les autres, ils ont tous la même structure, et les mêmes calculs et je peux faire les tris et il n'y a que celui la que je ne peux pas c'est bizarre quand même
Cordialement
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Tri

Bonsoir sev31130, djidji59430,

Il n'y a pas que la colonne total où le tri ne se fait pas.

C'est la même chose pour toutes les colonnes du tableau A, contrairement à ce que vous dites.

Et ce n'est pas bien difficile à comprendre, il suffit de regarder la formule en AI372.

=SOMME.SI($B$371:$AG$371;AI$371;$B372:$AG372) est uniquement constituée de références de cellules extérieures au tableau et leurs valeurs ne se modifient pas lors du tri.

La valeur en AI ne peut donc pas changer, et il en est de même pour toutes les autres cellules.

A+
 

job75

XLDnaute Barbatruc
Re : Tri

Re,

Si vous n'avez pas bien compris, le problème est le même que celui-ci :

- construisez un petit tableau A

- copier-collage spécial avec liaisons pour constituer le tableau B

- il est alors impossible de trier le tableau B.

A+
 

job75

XLDnaute Barbatruc
Re : Tri

Bonjour sev31130, le forum,

Le tri est cependant possible si l'on inclut les tableaux à gauche de A dans le tri :

- convertir tous les tableaux de la ligne 371 en plages

- sélectionner les lignes 372:391 et trier sur la colonne AN (DONNEES => Trier).

Cela dit c'est surtout pour comprendre car je serais étonné que cette solution vous intéresse

Fichier joint.

Bonne journée.
 

Pièces jointes

  • annuel(1).xls
    152 KB · Affichages: 45
Dernière édition:

sev31130

XLDnaute Impliqué
Re : Tri

merci

j'ai bien compris, et comme vous le notez dans le post plus haut en effet ce n'est pas le but recherché;
De ce fait fort de vos explications (et vous en remerciant vivement) lorsque je voudrais faire un tri de ce tableau
je ferais un copier/coller en ne recopiant que les valeurs et la le tri est fait sur toutes les colonnes et pour chaque ligne complète.
Merci surtout encore une fois de me permettre de comprendre et d'essayer de me donner des solutions palliatives
afin que je puisse arriver à faire ce que je veux faire

Cordialement

on peut fermer le sujet

merci
 

job75

XLDnaute Barbatruc
Re : Tri

Re,

Maintenant avec VBA on peut tout faire cher ami.

Voyez le fichier joint et les macros des boutons :

Code:
Private Sub CommandButton1_Click() 'Tri croissant
With [Tableau7]
  If Intersect(ActiveCell.EntireColumn, .Cells) Is Nothing Then Exit Sub
  .Value = .Value 'supprime les formules
  .Sort ActiveCell, xlAscending, Header:=xlYes
End With
CommandButton1.Visible = False
CommandButton2.Visible = False
CommandButton3.Visible = True
End Sub

Private Sub CommandButton2_Click() 'Tri décroissant
With [Tableau7]
  If Intersect(ActiveCell.EntireColumn, .Cells) Is Nothing Then Exit Sub
  .Value = .Value 'supprime les formules
  .Sort ActiveCell, xlDescending, Header:=xlYes
End With
CommandButton1.Visible = False
CommandButton2.Visible = False
CommandButton3.Visible = True
End Sub

Private Sub CommandButton3_Click() 'Formules
Dim rc&, t, a(), i&, j&, x$
With [Tableau7]
  rc = .Rows.Count
  '---mémorisation des numéros--
  t = .Value
  ReDim a(1 To rc, 1 To 3)
  For i = 1 To rc
    a(i, 1) = t(i, 1): a(i, 2) = t(i, 2)
    For j = 3 To 6
      a(i, 2) = a(i, 2) & Chr(1) & t(i, j)
  Next j, i
  '---mise en place des formules---
  i = .Row - 1
  j = .Column - 1
  .Columns(2).Resize(, 5) = "=SUMIF(R" & i & "C2:R" & i & "C" & j & ",R" & i & ",RC2:RC" & j & ")"
  .Columns(7) = "=SUM(RC[-5]:RC[-3])"
  '---repositionnement correct des numeros---
  t = .Value
  For i = 1 To rc
    x = t(i, 2)
    For j = 3 To 6: x = x & Chr(1) & t(i, j): Next j
    For j = 1 To rc
      If x = a(j, 2) And a(j, 3) = "" Then
        t(i, 1) = a(j, 1)
        a(j, 3) = 1 'repérage en cas de doublon (sûrement rare)
        Exit For
      End If
  Next j, i
  .Columns(1) = t
End With
CommandButton1.Visible = True
CommandButton2.Visible = True
CommandButton3.Visible = False
End Sub
Le code du bouton "Formules" est assez trapu...

A+
 

Pièces jointes

  • annuel tri VBA(1).xlsm
    89.7 KB · Affichages: 45
Dernière édition:

sev31130

XLDnaute Impliqué
Re : Tri



Bonjour

que répondre, juste dire Monsieur chapeau et Merci
car n'ayant pas les connaissances, je n'aurais même jamais douté que l'on pouvait le faire
avec ce système.
je ne peux dire que Monsieur je vous remercie de votre gentillesse et amabilité

Cordialement

Yves
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…