Microsoft 365 Tri d'un tableau impossible

homernell

XLDnaute Occasionnel
Bonjour à tous,

Je reviens vers vous une deuxième fois dans ce forum car après discutions avec certains d'entre vous la solution n'a pas été trouvé.

Je cherche tout simplement à trier les données d'un tableau, mais malheureusement cela ne fonctionne pas.

En pj le fichier en question.

Merci de vos retours
 

Pièces jointes

  • SEMAINE TEST.xlsm
    815.7 KB · Affichages: 25

Hasco

XLDnaute Barbatruc
Repose en paix
car après discutions avec certains d'entre vous la solution n'a pas été trouvé.
bonjour,

Dans quelle discussion. C'est à nous de chercher ? Faites remonter la discussion dans la liste en y répondant. Vous ne présentez rien de fondamentalement nouveau dans celle-ci, un nouveau fil est inutile.
C'est également une question de respect pour ceux qui ont tenté de vous aider.

Cordialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Homernell, JHA, Hasco,
Je cherche tout simplement à trier les données d'un tableau
Ca, malheureusement avec la structure de votre fichier, le "tout simplement" n'est pas possible.
Un tri ne peut pas s'effectuer sur les formules puisqu'elles sont continuellement recalculées.
Vous avez plein de lignes vides, comment voulez vous qu'XL sache qu'il ne faut pas en tenir compte.

Une solution, qui en vaut d'autres, en PJ.
Une feuille "Box Office (Trié)" est crée. Un bouton permet d'exporter la matrice sur cette feuille mais en valeurs et non en formules. Puis vire les lignes vides et enfin fait le tri.
Un lien hypertexte permet de revenir sur la feuille de base.
 

Pièces jointes

  • SEMAINE TEST (V2).xlsm
    886.8 KB · Affichages: 3

homernell

XLDnaute Occasionnel
Bonjour Homernell, JHA, Hasco,

Ca, malheureusement avec la structure de votre fichier, le "tout simplement" n'est pas possible.
Un tri ne peut pas s'effectuer sur les formules puisqu'elles sont continuellement recalculées.
Vous avez plein de lignes vides, comment voulez vous qu'XL sache qu'il ne faut pas en tenir compte.

Une solution, qui en vaut d'autres, en PJ.
Une feuille "Box Office (Trié)" est crée. Un bouton permet d'exporter la matrice sur cette feuille mais en valeurs et non en formules. Puis vire les lignes vides et enfin fait le tri.
Un lien hypertexte permet de revenir sur la feuille de base.
Je vous remercie, mais j'ai des données par valeur partout
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Rien à voir avec les macros.
Vous dites que vous n'avez que des données, or vous voulez un tri sur une colonne avec des formules.

Ensuite les lignes vides n'arrangeront rien pour faire un tri. Et pourquoi deux lignes vides pour une ligne pleine ?
Avant de faire des macros, il faut penser à la structure du fichier pour que cela reste simple.

Ensuite avez vous ouvert ma PJ, qu'en pensez vous ?
Ensuite avez vous ouvert la PJ de JHA, qu'en pensez vous ?
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

Et pour répondre à la question de @Hasco
Dans quelle discussion. C'est à nous de chercher ? Faites remonter la discussion dans la liste en y répondant. Vous ne présentez rien de fondamentalement nouveau dans celle-ci, un nouveau fil est inutile.
C'est également une question de respect pour ceux qui ont tenté de vous aider.

Voir ici ==>

ou je t'avais répondu ceci :
Les formules empêche de faire un tri comme tu le souhaites.
Et tu les supprimes tu n'as plus le résultat escompté ton pb me semble soit insoluble soit hors de mes compétences, désolé.


*Je t'avais modifié le module 10 et je t'avais demandé de supprimé les modules vides et je vois que tu ne l'as toujours pas modifié pas cool.
*En gros j'ai perdu mon temps avec toi :mad:

J'ajouterais que la logique du forum c'est de continuer sur le même fil la discussion.

Bonnes fêtes

@Phil69970
 

job75

XLDnaute Barbatruc
Bonsoir à tous,

Pour que le tableau de la feuille Box Office puise être trié il faut supprimer toutes les formules.

Le tableau devra être construit à l'aide d'une macro qui prendra les données dans les 3 feuilles sources.

C'est donc la conception de votre fichier qu'il faut complètement revoir.

A+
 

fanch55

XLDnaute Barbatruc
Bonsoir à tous,
Après analyse des formules de la feuille, vos lignes sont dépendantes des cinémas et du nombre de salles de ceux-ci , sans parler du nombre de lignes vides avec et sans formules ( ce sont un peu des formules à la carte ...)
Je rejoins toute la communauté en vous disant que vous devriez copier manuellement ou par code votre tableau ( les valeurs ) dans une autre/nouvelle feuille et y trier ce que bon vous semble . 🙏
 

job75

XLDnaute Barbatruc
Notre ami attend qu'on lui fournisse une macro, alors voyez celle-ci dans Module2 :
VB:
Sub MAJ()
Dim feuilles, d As Object, w As Worksheet, tablo, i&, x$, resu(), n&, report As Variant, nn&
Set feuilles = Sheets(Array("Cezanne", "Renoir", "Mazarin")) 'liste des cinémas
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For Each w In feuilles
    d.RemoveAll
    tablo = w.Range("A1", w.UsedRange).Resize(, 32) 'matrice, plus rapide
    For i = 5 To UBound(tablo)
        If LCase(tablo(i, 2)) = "salle" Then
            If tablo(i, 4) <> "" Then
                x = tablo(i, 4) & Chr(1) & tablo(i + 1, 3) & Chr(1) & tablo(i + 2, 3)
                If Not d.exists(x) Then
                    ReDim Preserve resu(8, n) 'base 0
                    d(x) = n 'mémorise la ligne
                    resu(0, n) = w.Name
                    If IsDate(tablo(i + 2, 3)) Then resu(1, n) = CDbl(CDate(tablo(i + 2, 3)))
                    resu(2, n) = tablo(i, 4) 'Film
                    resu(3, n) = tablo(i + 1, 6) 'Distrib
                    resu(4, n) = tablo(i + 1, 3) 'Sem
                    report = Application.VLookup(tablo(i, 4), Sheets("Cumul Box Office").Columns("D:J"), 7, 0)
                    If IsNumeric(report) Then resu(7, n) = report
                    n = n + 1
                End If
                nn = d(x)
                resu(6, nn) = resu(6, nn) + Val(tablo(i, 32))
                resu(8, nn) = resu(6, nn) + resu(7, nn)
            End If
        End If
Next i, w
'---restitution---
Application.ScreenUpdating = False
With Sheets("Box Office").[B5:J133]
    .ClearContents 'RAZ
    .Rows.Hidden = True 'masque
    If n > .Rows.Count Then MsgBox "Pas assez de place !", 48: Exit Sub
    If n Then
        .Resize(n).EntireRow.Hidden = False 'affiche
        .Resize(n) = Application.Transpose(resu) 'Transpose est limitée à 65536 lignes
    End If
End With
End Sub
Cliquez sur le bouton MAJ de la feuille "Box Office".

Maintenant le tri du tableau est possible.

Bonne nuit.
 

Pièces jointes

  • SEMAINE TEST(1).xlsm
    811.5 KB · Affichages: 2
Dernière édition:

Discussions similaires

Réponses
2
Affichages
281

Statistiques des forums

Discussions
312 198
Messages
2 086 126
Membres
103 127
dernier inscrit
willwebdesign