Tri de données

Bonjour,

J'essaie, dans un tableau de gestion de matériel, d'effectuer un tri ascendant automatique lorsque je quitte ma feuille de données modifiée par de nouvelles entrées et qui définit également la première colonne A (description) de ma feuille de stocks. De plus, lors de ce tri automatique, il faut absolument que les valeurs numériques correspondantes au descriptif de la colonne A des stocks restent attachées à leurs valeurs textes respectives.

Je cherche désespérément la solution en VBA mais en vain...

Quelqu'un pourrait-il m'aider à trouver la solution à mon problème ?

Les formules ça commence à rentrer mais la programmation, le chemin est encore très long....

Merci d'avance

Vic

5classeur1.xlsm (23.27 Ko)

Bonjour,

c'est la feuille Stocks ou Données qu'il faut trier ?

Bonjour,

En triant la feuille de données, celle de stocks se met à jour automatiquement.

Mon problème c'est qu'il faut que les valeurs de la feuille stocks restent solidaires lors du tri et n se décalent pas.

Est-ce possible ?

Vic

re,

je ne comprend pas le but de cette manipulation

re,

Voici un exemple, j'ai ajouté une colonne avec la formule EQUIV sur la feuille Stocks

10vic-tri.xlsm (25.09 Ko)

Bonjour i20100,

Merci pour ton aide.

Je t'explique l'utilité de cette manœuvre :

Ce tableau est destiné a faire de la gestion de stock d'outillage et contient en réalité d'autres feuilles.

La feuille des stocks en est la synthèse mais la colonne A est commune à toutes les autres feuilles où se gèrent les entrées, les sorties, les pertes, les vols, etc...

Il est donc primordial que les données de chaque colonne A de chaque feuille soient identiques pour que ça fonctionne.

J'ai essayé en vba et ça fonctionne en ce qui concerne le tri de la colonne A mais le hic c'est que les données des autres colonnes qui se rapportent à la colonne A restent statiques et cela amène à un décalage des données.

Je ne peux malheureusement pas joindre le fichier original car il comporte des données confidentielles mais le principe reste le même.

J'aimerais avoir une base de solution en vba et j'essaierai de comprendre et de l'adaptée à mon tableau.

Merci d'avance

re,

voici une nouvelle version avec une variable tableau,

14vic-tri-ver2.xlsm (23.66 Ko)

est ce que ça convient ?

Bonjour i20100,

Merci pour ta réponse

Ce n'est malheureusement pas tout à fait ce que je veux.

Voici en annexe mon fichier avec une macro qui trie les données de la colonne A de ma feuille "Données".

Comme cette feuille gère l'affichage de la colonne A de ma feuille "stocks" et d'autres feuilles à venir d'ailleurs, le tri s'effectue bien sur ma feuille "Stocks" également.

Le problème, c'est que seule la colonne A de ma feuille "Stocks" est triée et non le tableau dans son ensemble, d'où le décalage des données numériques.

Je ne sais pas comment faire pour que le tableau soit trié dans son ensemble.

Pourrais-tu m'aiguiller dans ce sens ?

Un grand merci d'avance pour ton aide.

Vic

14classeur2.xlsm (22.39 Ko)

Bonjour,

Ton classeur ne comporte qu'une macro (opérationnelle). Celle qui trie les données !...

La feuille Stocks n'est pas triée.

Alors tu reformules le tout.

Cdlt..

Merci Jean-Eric pour ta réponse mais comment reformuler ?

Je débute et je rame un peu (beaucoup) en VBA.

Merci d'avance

Re,

Veux tu dans un premier temps trier la feuille Données, puis effectuer le même tri dans la feuille Stocks ?

(Lignes identiques dans le 2 feuilles)

Cdlt.

Je ne te suis pas Jean-Eric.

La colonne A de la feuille "Stocks" se trie automatiquement puisque qu'elle est basée sur la colonne A de la feuille "Données" (=Données!A2, etc...).

La colonne A de la feuille "Données" est amenée à subir de fréquentes nouvelles entrées et il faut que toutes les feuilles de la gestion de stocks (Entrées, sorties, etc...) aient la même base de données (description) afin d'éviter les erreurs.

Ce que je souhaiterais, c'est que l'ensemble du tableau de la feuille "Stocks" soit trié en même temps. A4:D500 par exemple.

Cdlt

Bonjour,

C'était pas la journée hier.

Pas vu des doublons, pas vu des formules !...

Cdlt.

Bonjour,

Doublons, formules....??????

Mon problème c'est juste le tri d'un tableau et non la seule colonne A de ma feuille "Stocks".

Suis dans la panade là !!!!

Cdlt

Bonsoir Jean-Eric, vic

Vic, la conception de ton classeur te mène tout droit vers la catastrophe.

Mais bon pour l'exercice :

Option Explicit
Sub test()
Dim a, i As Long, rng As Range, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    a = Sheets("Stocks").Range("a1").CurrentRegion.Value
    For i = 3 To UBound(a, 1)
        If a(i, 1) <> 0 Then
            dico(a(i, 1)) = VBA.Array(a(i, 2), a(i, 3), a(i, 4))
        End If
    Next
    With Sheets("Données")
        Set rng = .Range("a3", .Range("a" & Rows.Count).End(xlUp))
        rng.Sort key1:=.Cells(1), order1:=xlAscending, Header:=xlNo
    End With
    With Sheets("Stocks").Range("a1").CurrentRegion
        For i = 3 To .Rows.Count
            If .Cells(i, 1).Value <> 0 Then
                .Cells(i, 2).Resize(, 3).Value = dico(.Cells(i, 1).Value)
            End If
        Next
    End With
    Set dico = Nothing
End Sub

Je m'arrêterai là

Vu qu'il y a plusieurs feuilles, il faudrait opérer via un dictionnaire parent et un dictionnaire enfant.

Si quelqu'un avait une autre solution à proposer, je suis preneur

S'il te plait enlève la pseudo-macro événementielle dans le ThisWorkbook de ton classeur joint

klin89

Bonjour,

Merci encore à Klin89 et à Jean-Eric pour votre aide précieuse.

Tu as raison Klin89, j'ai transformé mon tableau en TCD, supprimer ma feuille "Données" et tout fonctionne à merveille après quelques petits aménagements.

"Pourquoi faire simple quand on peut faire compliqué..."

Encore des erreurs de débutant un peu obstiné mais j'ai au moins avancé un peu dans l'utilisation d'Excel.

Merci encore

Cdlt

Rechercher des sujets similaires à "tri donnees"