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

Faire une suite simple et cohérente

Anthonymctm

XLDnaute Occasionnel
Bonjour à tous et bonne année !

Depuis quelques temps j'essaie de trouver un moyen d'avoir une suite de numéros (1, 2, 3, 4, etc) qui soit à l'épreuve de petites modifications manuelles et qui reste cohérente en permanence.

Je m'explique :

- Sur le fichier exemple j'ai en colonne A une suite de nombres de 1 à X, entre B et AA je me sers de ces numéros pour une série de formules, dont des RechercheV qui cherchent dans l'onglet "Base de données"
- Chaque numéro est unique (en A1 j'ai une petite formule qui me permet de vérifier qu'aucun numéro ne manque ou ne soit en doublon)
- Par défaut, les numéros doivent suivre l'ordre croissant et compléter cet ordre sans qu'il n'y ait de trou. (ça ne doit pas faire 1,2,3,5,6,etc)

L'utilisateur peut faire 2 types de modification :
- Il est possible qu'il fasse un espace dans les numéros pour remplir le reste manuellement (il sélectionnera le numéro et appuiera sur supr. Donc il ne supprimera pas la ligne, juste le numéro)
Quand il le fera il faut que le numéro qu'il aura supprimé se décale vers le bas (c'est dans l'exemple 2 du fichier) (au lieu de 1,2,3,4 ça donnera 1,"",2,3)
A chaque fois qu'il fera un espace, obligatoirement, comme les numéros se décaleront, les derniers numéros disparaîtront, ce n'est pas grave.

- Il est possible qu'il souhaite modifier manuellement l'ordre d'affichage (par exemple il peut vouloir que le numéro 5 soit en 2eme position il remplacera donc la formule qui donne 2 par 5 et au lieu de donner 1,2,3,4,5,6 ça donnera 1,5,2,3,4,6)


Il n'est pas prévu que l'utilisateur insère ou supprime des lignes.
Le fichier aura de toute façon une protection qui l'interdira.

Il est évidemment possible d'utiliser d'autres colonnes ou des macros si besoin

Merci de votre aide
 

Pièces jointes

  • test lignes2.xlsx
    60.6 KB · Affichages: 13
Dernière édition:

CHRIS1945

XLDnaute Occasionnel
Bonjour et bonne et heureuse année 2020 pleine de développements Excel !

Ton problème est intéressant.
Tel quel, il est difficilement réalisable (en tous cas pour moi)
Par contre, il y a moyen avec une petite astuce d'arriver à peu près à ce que tu désires.
En fait il faut dissocier tes références (qui te permettent des trouver les libellés dans ta table de données) de l'ordre de tri.
J'ai donc créé
- une colonne supplémentaire devant ta colonne référence qui contiendra le tri des données
- une ligne 0 (pour pouvoir permettre de classer une ligne en première position - voir explication plus loin)
- un VBA événementiel qui se déclenchera automatiquement dès que l'on change quelque chose dans la colonne de TRI (colonne A)

Ainsi si l'on désire mettre la ligne 33 en deuxième position, il suffit de remplacer le 33 dans la colonne A par 1. En effet, le tri positionnera automatiquement devant le 2 et ainsi on obtiendra l'ordre désiré. C'est donc la raison de la création de la ligne 0 qui permet de mettre n'importe quelle ligne en première position.

Contrainte : toutes les lignes dont aura "effacé" l'ordre de TRI se retrouveront en fin de tableau (je ne pense pas que cela soit gênant d'autant plus qu'elles garderont leur référence et donc tu pourras facilement les réactiver si nécessaire).

Je te joins un classeur test où je n'ai pas mis ta base de données mais uniquement le traitement de ta table de matière que j'ai transformée en tableau pour un meilleur suivi. En effet, si tu changes les dimensions du Tableau1, tu ne devras pas intervenir dans le VBA puisqu'il travaille sur base du Tableau1 et tes formules de rechercheV seront automatiquement créées dans les nouvelles lignes.

Il vaut toujours mieux de travailler avec les tableaux : c'est génial.

Voilà, j'espère que cela te convient et revient moi si tu as un problème

Bonne continuation
Chris

NB : tu peux changer le nom du Tableau1 si cela ne te convient pas mais il faudra adapter le VBA. Comme ici c'est purement technique, je ne pense pas que cela soit nécessaire.
 

Pièces jointes

  • TEST LIGNES3.xlsm
    18.9 KB · Affichages: 6

Anthonymctm

XLDnaute Occasionnel
Ok, alors à première vu ça semble vraiment pas mal !
C'est une approche plutôt originale, j'aime bien !
Reste à voir si les liaisons se rafraîchissent bien.

... Quoi que je vois qu'il y a pas la fonctionnalité d'espace, indispensable dans mon utilisation. :S
J'ai besoin de pouvoir espacer des références si besoin. Par exemple ajouter une référence vide entre 10 et 11.
A moins de prévoir des référence vide à la fin et d'indiquer le numéro de tri.

NB : J'ai ajouté ça à mon fichier original, j'ai modifié les tri par 10,20,30,etc ça me permet de plus choisir plus précisément l'emplacement avec des 21,22 par exemple, sinon avec les nombre entier j'avais parfois deux numéros 4 et c'était plus délicat de choisir l'emplacement.
Mais il reste la fonction des espaces qui est plutôt galère

NB 2 : Impossible de masquer les flèches de tri ?
Edit : J'ai enlevé le filtre et ça semble fonctionner quand même.

NB 3 : On a pas intérêt à se planter parce que retour en arrière impossible
 
Dernière édition:

CHRIS1945

XLDnaute Occasionnel
Bonjour,

Content que cela te convienne.

Je te fais parvenir une autre version qui répond, je pense à tes remarques.
Je ne peux pas savoir exactement comment tu comptes relier ta table des matières avec la base de données mais comme celle ci comporte plusieurs lignes pour une référence, j'ai supposé que tu voulais faire un lien hypertexte pour pointer dans le tableau des données. J'ai donc construit les 7 premières références avec 7 liens hypertexte. (je te laisse le soin de faire les autres).
J'ai ajouté 5 lignes vierges dans la table des matières pour permettre de faire des insertions de ligne "à blanc" et j'ai fais un pas de 10 comme tu le souhaites. Il est évident que tu peux ajouter des lignes à blanc si nécessaire.
On pourrait ajouter un lien hypertexte pour le retour vers la table des matières mais c'est si simple de cliquer sur l'onglet que je ne l'ai pas fait.
Comme tu le constateras, les liens hypertexte suivent lors des tris et donc tu pointeras bien sur les bonnes rubriques quelque soit le rang de la référence.

Dis moi si c'est à cela que tu pensais

A+
Chris
 

Pièces jointes

  • TEST LIGNES3.xlsm
    22.2 KB · Affichages: 4

Anthonymctm

XLDnaute Occasionnel
NB

Salut Chris,

J'espère que tu t'es pas trop embêtée avec les liens hypertexte, parceque j'en ai pas besoin ^^'

En fait c'est simplement des rechercheV qui cherche dans la base de données avec en target le numéro de ref. Numéro de ref correspondant aux numéros de la colonne B de la base de données. (sauf que les numéros sont uniques, mon exemple n'est pas bon, ca doit continuer au dela de 6).

A partir de ta première version j'ai pu obtenir quelque chose de proche à ce que je souhaitais.
Le seul détail réside dans le côté un peu moins pratique de faire les espaces. Ca aurait était bien que si je supprime une valeur de ref, les autres se décalent. Mais dans l'absolue je me contenterais de ça qui répond déjà pas mal à mon besoin !
 

Pièces jointes

  • 2020-01-08 12_04_37-Démarrer.png
    52.8 KB · Affichages: 16

Discussions similaires

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