Mise à jour de cellules en fonction d'une autre (même colonne)

Nat -  
 Nat -
Bonjour,



J'ai du mal à exprimer mon problème, et donc du mal à effectuer une recherche sur les forums de ce dont j'ai besoin. J'ai besoin de votre aide pour m'aider à, soit formuler ma recherche, soit résoudre mon problème.
Voici mon problème, j'ai un fichier excel avec 2 colonnes, une qui contient des noms d'étapes (plus d'une centaine), l'autre doit contenir leur ordre d’exécution.
Quand je remplis cet "ordre", j'aimerais que si j'insère un numéro déjà utilisé, toutes les cellules utilisant ce numéro ou un numéro supérieur soit incrémentées de 1.
Mon exemple:
"mon étape"; 1
"my step" ; 2
"étape" ; 3
"step" ;

Ainsi, dans mon exemple, quand je me rends compte que "step" doit être exécutée avant "my step" (numéro 2), je souhaiterais taper 2 en B4 et que B2 et B3 soient incrémentées automatiquement.

Le but "ultime" étant de finalement trier mes lignes en fonction de ce numéro...

J'ai regardé du côté de la validation des données mais sans résultat...
Des idées?

Cordialement,

Nat.
A voir également:

2 réponses

DjiDji59430 Messages postés 4335 Date d'inscription   Statut Membre Dernière intervention   703
 
Bonjour,

"Quand je remplis cet "ordre", j'aimerais que si j'insère un numéro déjà utilisé, toutes les cellules utilisant ce numéro ou un numéro supérieur soit incrémentées de 1."

C'est ta solution.
Tu cliques sur "mystep"; tu fais insérer, tu insères "step" qui te décale le reste des cellules vers le bas ==>+1

Crdmt
0
Nat
 
Malheureusement, sur mes centaines d'étapes, je vais passer un temps fou à scroller, copier et insérer...
Ça répond tout de même!

Merci :)
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonjour Nat

Ce que tu veux faire n'est possible qu'avec une macro qui se lance à chaque modification d'une cellule de la colonne B

ALT+F11 pour ouvrir l'éditeur VBA
Sélectionner par double-clic la feuille concernée dans l'arborescence à gauche
Copier coller la macro suivante dans la page blanche de droite

Private Sub Worksheet_Change(ByVal Target As Range)
' Si hors de la colonne 2 ou si plusieurs cellules sélectionnées alors sortie
If Target.Column <> 2 Or Target.Count > 1 Then Exit Sub
'sinon boucle depuis la ligne 1 jusqu'à celle précédant la nouvelle entrée
For n = 1 To Target.Row - 1
' si valeur > ou = on l'incrémente de 1
If Range("B" & n) >= Target.Value Then Range("B" & n) = Range("B" & n) + 1
Next
End Sub


Fermer l'éditeur

Cdlmnt
Via
0