Rénumérotation apres modification d'une valeur

neim

XLDnaute Junior
Bonjour,

Dans le fichier joint, je souhaiterai que lorsque je change un numéro dans la colonne "Priorité", les autres se mettent à jour automatiquement.

Exemple :

Je change le n°3 en 1, le n°1 devient 2, le 2 devient 3
Je change le n°1 en 3, le n°2 devient 1, le numéro 3 devient 2

Est ce possible ?
 

Pièces jointes

  • renumerotation.xlsx
    9.1 KB · Affichages: 10

piga25

XLDnaute Barbatruc
Bonjour neim

Voir si cela peut convenir avec ajout d'une colonne pour définir qui sera le numéro 1 (colonne A)
en B2 :
Code:
=SI(A2=1;1;LIGNE())
en B3 et suivant :
Code:
=SI(A3=1;1;MAX($B$2:B2)+1)
 

Pièces jointes

  • renumerotation.xlsx
    14.6 KB · Affichages: 6

mécano41

XLDnaute Accro
Bonjour,

C'est juste un essai de modification de l'ordre dans la colonne Priorité. Ensuite, il faudra lancer un tri du tableau sur cette colonne par le VBA

Le cas d'ajout ou de suppression de ligne n'est pas traité.

Cordialement
 

Pièces jointes

  • Renumerotation1.xlsm
    18.8 KB · Affichages: 6

neim

XLDnaute Junior
Bonjour

Ca marche super bien merci.

Mais effectivement je suis amené à retirer les lignes terminées (j ai la macro disponible pour ca) et à en ajouter. Je peux en avoir plusieurs dizaines.

C'est possible de le prendre en compte ?
 

mécano41

XLDnaute Accro
Tout (ou presque) est possible ; c'est une question de niveau du programmeur...je vais regarder ce que je peux faire... car c'est là où le bât blesse!

Questions :

- comment as-tu prévu l'ajout (directement sur la première ligne vide? par boîte de dialogue? autre?
- et pour l'effacement? Bouton puis clic sur une ligne? Bouton puis sélection multiple? Par boîte de dialogue?
- tu as plusieurs dizaines de lignes ; y-a-t-il autant de niveaux de priorité que de lignes ou bien as-tu seulement 10 niveaux de priorité par exemple avec plusieurs lignes ayant la même priorité?

Cordialement
 

neim

XLDnaute Junior
Tout (ou presque) est possible ; c'est une question de niveau du programmeur...je vais regarder ce que je peux faire... car c'est là où le bât blesse!

Questions :

- comment as-tu prévu l'ajout (directement sur la première ligne vide? par boîte de dialogue? autre?
- et pour l'effacement? Bouton puis clic sur une ligne? Bouton puis sélection multiple? Par boîte de dialogue?
- tu as plusieurs dizaines de lignes ; y-a-t-il autant de niveaux de priorité que de lignes ou bien as-tu seulement 10 niveaux de priorité par exemple avec plusieurs lignes ayant la même priorité?

Cordialement

Je vais essayer d être précis :)

Oui ajout de ligne manuellement les une au dessous des autres (ou part copier coller )

Pour l effacement, le principe est de mettre une date dans la colonne termine (effectivement il y en aura plusieurs et pas forcément à la suite). Une fois les dates inscrites, j appuie sur un bouton archive et les lignes se déplacent dans une autre feuilles (copier les lignes dans la feuille archives, supprimer les lignes de la feuille data et remonter les lignes pour ne pas laisser de ligne blanche)

Logiquement oui un niveau de priorité par ligne.
 

mécano41

XLDnaute Accro
Bonjour,

Tu dis : "... ajout de ligne manuellement les unes au dessous des autres (ou par copier coller ) "

Qu'en est-il alors des indices de priorité? Si tu les copies d'un autre endroit avec la ligne, il peut y avoir des doublons et cela ne conviendra pas.
Sinon, il faut coller chaque ligne en ignorant l'indice éventuel puis lui affecter automatiquement l'indice supérieur suivant mais il faudra ensuite changer manuellement les indices s'il y a lieu.

Mais le point qui me gêne le plus est que n'importe qui peut aller coller une ligne au mauvais endroit par erreur. Si la macro événementielle se déclenche, le code va faire n'importe quoi et il sera impossible de revenir en arrière...

Le moyen que j'utilise habituellement pour éviter toute modification intempestive est de tout gérer par boîtes de dialogue avec les vérifications nécessaires point par point (ce qui n'est pas le cas actuellement). Des tableaux de Résultats, Consultation...etc peuvent être édités mais le tableau principal n'est pas accessible... Mais c'est un très gros travail (il y a plus de code de vérification que de code de fonctionnement proprement dit!) et je n'ai pas envie de me lancer là-dedans.

Ce serait bien d'avoir un avis des pros.

Cordialement
 

neim

XLDnaute Junior
Il faudra trier les lignes par priorité, les lignes supplémentaires ne seront pas coller au milieu du tableau mais bien à la suite sur la 1ere ligne vide. Le numéro de priorité sera donc le dernier n°+1. Ensuite, s'il y a lieu, le changement de priorité sera attribué (il n y aura donc pas de doublon possible)
 

mécano41

XLDnaute Accro
Bonjour,

Merci pour le retour. Pour clore le sujet, voici ce que j'avais fait. J'ai modifié le principe de mémorisation d'une liste qui ne convenait pas pour ce cas. (trop de données).

Cordialement
 

Pièces jointes

  • Renumerotation3-0.xlsm
    49.1 KB · Affichages: 4

Discussions similaires

Réponses
6
Affichages
447
Réponses
4
Affichages
440
Réponses
11
Affichages
378

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla