XL 2010 Macro pour trier séries de lignes contenant des formules

fablog

XLDnaute Occasionnel
Bonjour tout le monde,

Je pense que la solution à mon problème nécessite une macro car avec les fonctions de trie cela ne fonctionne pas correctement.
Je veux trier mon tableau dans cet ordre:
- Superviseur
- CIDP
- Information (en gardant l'ordre des types d'information)

Le problème est que j'ai des formules de recopie dans les cellules sans couleur des colonnes A à E et c'est ça qui met le bazar.

Merci par avance pour votre aide!
 

Pièces jointes

  • Tableau.xlsx
    30.5 KB · Affichages: 40

Modeste geedee

XLDnaute Barbatruc
Bonjour tout le monde,

Je pense que la solution à mon problème nécessite une macro car avec les fonctions de trie cela ne fonctionne pas correctement.
Je veux trier mon tableau dans cet ordre:
- Superviseur
- CIDP
- Information (en gardant l'ordre des types d'information)

Le problème est que j'ai des formules de recopie dans les cellules sans couleur des colonnes A à E et c'est ça qui met le bazar.

Merci par avance pour votre aide!
1 -pour garder l'ordre des types d'information :
il faut que cet ordre corresponde à un type (alpha ou num)
dans le cas contraire
il faut insérer une colonne comportant l'ordre inital

2 - si l'on veut que l'ordre des superviseurs soit alphabétique
il faut que les superviseurs non utilisés soient nommés "zzz" ou tout autre caractère supérieur à "z" dans la table ASCII

en conséquence :
insérez une colonne avant B
en B4 saisissez : 1
en B5 saisissez : 2
sélectionnez ces 2 cellules
double click sur le coin inférieur droit de cette sélection
puis choisir
tri personnalisé :
upload_2018-10-4_16-46-7.png


la colonne B pourra alors ensuite être supprimée
 

fablog

XLDnaute Occasionnel
Bonjour et merci pour votre réponse. Malheureusement, je dois laisser les cellules vides car je suis sur qu'une fois qu'un employé sera parti, son chef d'équipe ne remettra pas le "ZZZZZ" dans la cellule. Le filtre ne fonctionnera donc plus à ce moment là.
 

fablog

XLDnaute Occasionnel
Je sais exactement ce que je veux alors je ne vois pas pourquoi vous dites qu'il n'y a pas de cahier des charges. D'ailleurs, dans mon cahier des charges je ne peux pas utiliser de Userform par choix ergonomiques.
Je rappel que ma demande consiste en une macro pas dans des changements de structure de mon fichier.
Merci quand même pour votre temps.
 

Modeste geedee

XLDnaute Barbatruc
Je sais exactement ce que je veux alors je ne vois pas pourquoi vous dites qu'il n'y a pas de cahier des charges. D'ailleurs, dans mon cahier des charges je ne peux pas utiliser de Userform par choix ergonomiques.
Je rappel que ma demande consiste en une macro pas dans des changements de structure de mon fichier.
Merci quand même pour votre temps.
Je pense que la solution à mon problème nécessite une macro
Continuons donc à penser , un VBAiste extralucide va peut-être passer par ici ...
 

job75

XLDnaute Barbatruc
Bonjour fablog, Modeste geedee, JHA, le forum,

Je ne comprends pas pourquoi vous utilisez des formules, d'autant qu'elles ne sont pas simples à mettre en œuvre.

Voyez le fichier joint et les opérations de copier-collage spécial.

Il suffira ensuite de trier le tableau sur les colonnes "Superviseur" puis "CIDP".

A+
 

Pièces jointes

  • Tableau sans formules(1).xlsx
    33.9 KB · Affichages: 15

chatounet

XLDnaute Nouveau
Bonjour le forum
JHA était parti sur la même idée que moi.
Ma proposition est un nouveau tableau dans une autre feuille qui est toujours trié et à jour. Il suffit d'incrémenter la dernière ligne et/ou la dernière colonne. Ainsi la base de donnée peut être modifiée à souhait : suppression ou ajout de salariés ; idem pour les jours en colonne. Une solution sans macro.
Bien à vous tous
 

Pièces jointes

  • tri Fablog.xlsx
    40.8 KB · Affichages: 19

job75

XLDnaute Barbatruc
Re, salut chatounet,

La solution de mon post #10 est aussi sans macro (et sans formules) :)

Maintenant si l'on veut que les plages telles que B5: D9. restent vides il faut du VBA :
Code:
Sub Trier()
Dim a As Range
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With [A3].CurrentRegion.Columns(2).Resize(, 3)
    For Each a In .SpecialCells(xlCellTypeBlanks).Areas
        a.NumberFormat = "General" 'format Standard
        a.FormulaR1C1 = "=IF(RC5=R4C5,""zzz"",R[-1]C)"
    Next
    .EntireRow.Sort .Columns(3), xlAscending, .Columns(1), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
    .SpecialCells(xlCellTypeFormulas).ClearContents 'efface les formules
End With
End Sub
Fichier .xlsm joint.

A+
 

Pièces jointes

  • Tableau trié par VBA(1).xlsm
    40.2 KB · Affichages: 22

chatounet

XLDnaute Nouveau
Re à Tous, salut Job75
Bien vu ta proposition, c'est exactement ce que voulait Fablog. Il est vrai que je n'avais pas vraiment compris si son problème était de remplir les cellules en blanc (colonnes B C et D) ou de sans débarrasser, mais aussi si elle voulait travailler directement sur sa BD.
Merci à toi,
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo