Résolu Rénumérotation apres modification d'une valeur

neim

XLDnaute Nouveau
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 ?
 

Fichiers joints

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)
 

Fichiers joints

neim

XLDnaute Nouveau
Bonjour Piga

Merci pour ton retour.

L'ajout d'une colonne semble complique. Je pensais faire exucuter ca avec une macro evenementielle (à la modification d'un numero)
 

piga25

XLDnaute Barbatruc
Re

Une solution sans colonne supplémentaire
Mettre le numéro de la liste que vous voulez passer en premier (dans la cellule jaune)
 

Fichiers joints

neim

XLDnaute Nouveau
Merci, je vois bien comment ca fonctionne :)

oui c'est interessant. Par contre cela ne fonctionne que si je change la priorité "1" ? Comment faire si par exemple je veux changer la n°4 en n°2 ?
 

piga25

XLDnaute Barbatruc
Re
Ce n'est plus du tout la question de départ.
Ce qui est possible, c'est de modifier directement l'ordre dans votre colonne priorité (+ simple il n'y a pas).
 

neim

XLDnaute Nouveau
oi c est ca, mais pas forcement à partir de la priorite n°1. la priorité n°3 peut devenir priorité n°2 ou n°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
 

Fichiers joints

neim

XLDnaute Nouveau
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 Nouveau
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 Nouveau
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
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas