XL 2010 pb de bordure lors de tri

romu45

XLDnaute Nouveau
bonjour
j'ai un fichier (plus un tableau d'ailleurs, car pas de formule juste des données) créé initialement par n° d'affaire , à chaque affaire correspond un équipement, en général chaque affaire est constitué de 7 lignes quelques unes en 8 d'autres 1,
j'ai besoin de réorganiser mon tableau par équipement , j'ai donc lancé un tri par équipement de A à Z, cela fonctionne, sauf pour les bordures grasses qui séparent chaque groupe de ligne constituant un équipement , autre pb les équipements type asp10 se retrouve entre asp1 et asp2 et pas apres asp9
y a t il des fonctions que je ne connais pas ou c'est la construction de mes données qui n'est pas bonnes
merci de vos réponses

cordialement
 

Pièces jointes

  • FICHIER AFFAIRES POINTAGES MACHINES.xlsx
    41.9 KB · Affichages: 14

vgendron

XLDnaute Barbatruc
Hello
edit: hello @danielco
je vois pas bien le tri que tu souhaites faire
par numéro d'affaire.. puis pour chaque numéro par code pièce?
dans ce cas:, il te suffit de selectionner le tablo complet,
bouton trier
selectionner "mes données ont des en-têtes"
trier par n° affaire,
ajouter un niveau, code pièce
et OK

Note: je ne comprend pas pourquoi le fait de clique sur "Trier" sans sélectionner ton tableau, ca ne selectionne que à partir de la ligne 879...

pour ton pb d'ASP.
ASP10 est après ASP1 et avant ASP2...
pour contourner le pb.. ecris ASP01 ASP02....
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @romu45, @danielco, @vgendron,

Un essai avec deux formules matricielles (à valider par la combinaison des trois touches Ctrl+Maj+Entrée au lieu de la seule touche entrée) dans les cellules E2 et F2. Ces deux formules sont à recopier vers le bas.
Ensuite on procède à un tri tel qu'il est illustré dans l'image ci-dessous.
Une MFC sur la zone vient ajouter les bordures rouges.

Les deux formules matricielles respectivement en E2 et F2 (un peu tarabiscotées, je le concède):
VB:
=GAUCHE(B2;MAX((STXT(B2;LIGNE(INDIRECT("1:" & NBCAR(B2)));1)>="A")*(STXT(B2;LIGNE(INDIRECT("1:" & NBCAR(B2)));1)<="Z")*LIGNE(INDIRECT("1:" & NBCAR(B2)))))
VB:
=SIERREUR(STXT(B2;MAX((STXT(B2;LIGNE(INDIRECT("1:" & NBCAR(B2)));1)>="A")*(STXT(B2;LIGNE(INDIRECT("1:" & NBCAR(B2)));1)<="Z")*LIGNE(INDIRECT("1:" & NBCAR(B2))))+1;99);"")

nota : évidemment cette méthode ne fonctionne pas dans tous les cas.
1567453611569.png
 

Pièces jointes

  • romu45- Tri & Format- v1.xlsx
    89.2 KB · Affichages: 11
Dernière édition:

romu45

XLDnaute Nouveau
merci de vos réponses
pour répondre à Daniel, mon pb est qu’aujourd’hui mon tableau est trier par n° d'affaire , pour la clarté lors de la lecture du document imprimé, j'ai colorié en vert et rouge les lignes les plus usitées par n° d'affaire et je souhaitais avoir une bordure plus épaisse entre chaque affaire.
notre park machine a évoluée aussi les nouveaux équipements ont un n° plus élevé dans la liste et nous n'avons plus la continuité de lecture thr10 se retrouve 3 pages après les autres lors des impressions ce qui allonge le temps de recherche ( version papier bien évidemment) .
pour pallier à ce pb je souhaitais classer mes données par code pièce (machine) si on opère un tri suivant cette colonne on retrouve les 2 aménagements en début de liste et on perd toute la "mise en bordure" des cellules
j'espère que j'ai été assez clair
 

danielco

XLDnaute Accro
Bonjour,

1. En ce qui concerne le problème du tri, celui-ci peut se régler en modifier le code comme l'a indiqué vgendron. Si ce n'esst pas possible, utilise une colonne supplémentaire dans laquelle se fera la normalisation des noms et sur laquelle tu feras le tri. Cette colonne pourra être masquée et n'apparaîtra pas à l'impression. La formule à utiliser a été indiquée par mapomme.

2. Le problème des bordures épaisses peut être réglé avec une mise en forme conditionnelle. Je peux poster un classeur exemple.

3. Reste la colorisation des lignes les plus usitées. Est-ce qu'il est possible de le déduire des données du classeur ? D'après ton classeur, il semble que les lignes ayant "HEURE PREVENTIVE" en désignation soit en vert et "HEURE CURATIVE" soit en orange. Est-ce toujours le cas ? Si oui, une mise en forme conditionnelle peur régler le problème. Dans le cas contraire, je ne vois qu'une macro.

Daniel
 

romu45

XLDnaute Nouveau
une mise en forme conditionnelle? on fait comment ?
pour les heures oui c'est toujours les mêmes lignes qui sont colorés en fonctions de h prev ou h cur
j'ai commencé à faire la modif avec les n° de vgendron
la manip de mapomme est bien car ellegénere un trait de séparation des affaires ce que je recherche, idéalement il me faudrait un gros trait entre les affaires et un fin entre ligne de chaque affaire
 

danielco

XLDnaute Accro
Voici un exemple de ce qu'on peut obtenir. Tu peux te baser sur lui pour y insérer tes données ou je peux t'expliquer en détail comment mettre les mises en forme conditionnelles (ou MFC, pour faire court).

Daniel
 

Pièces jointes

  • romu45.xlsm
    36.1 KB · Affichages: 6

romu45

XLDnaute Nouveau
Voici un exemple de ce qu'on peut obtenir. Tu peux te baser sur lui pour y insérer tes données ou je peux t'expliquer en détail comment mettre les mises en forme conditionnelles (ou MFC, pour faire court).

Daniel
c 'est tout a fait cela à part les asp qui ont du subir une autre modif mais cela n'est pas grave
donc je voudrais bien savoir comment tu fais les mfc , tu geres le tri par les filtres?
 

danielco

XLDnaute Accro
tu geres le tri par les filtres?

Non, en fait, les filtres ne servent pas. On peut les supprimer. Pour le tri, il faut utiliser la formule indiquée par mapomme et que je n'ai pas reprise. Au départ, le tableau ressemble à ceci :
Annotation 2019-09-03 155757.png

Les bordures extérieures sont épaisses, ainsi que les bordures internes horizontales. La première règle concerne les colonnes A:C.

On sélectionne la plage "A2:D10000" (par exemple) soit de A2 à D10000. Clic sur l'onglet Accueil, clic sur Mise en forme conditionnelle. "Nouvelle règle" puis "Utiliser une formule.....".
Dans la zone formule, entrer :
VB:
=ET($A2=$A3;$A2<>"")
Clic sur le bouton Format, onglet Bordures, ajouter une bordure inférieure et valider.
Pour "heure preventive", on crée une autre règle (même plage sélectionnée) avec la formule :
Code:
=$C2=HEURE PREVENTIVE"
Couleur de remplissage verte.
Créer une autre règle pour "heure curative".

Daniel
 

Statistiques des forums

Discussions
311 713
Messages
2 081 806
Membres
101 819
dernier inscrit
lukumubarth