XL 2013 Déplacer une ligne avec VBA

Citronflexe

XLDnaute Junior
Bonjour à tous, en ce mois de Mai tronqué par les jours fériés.

Je suis à la recherche d'une macro qui me permettrait de déplacer une ligne sélectionnée après une autre, selon un numéro qui identifie chaque ligne.

J'avais pensé à créer un UserForm avec deux TextBox, une pour indiquer la ligne à déplacer, et l'autre pour indiquer la ligne avant laquelle il faut insérer la première (elle est pas claire cette phrase :().

Malheureusement je n'ai pas le bagage nécessaire en VBA pour faire tout ça moi-même...

Je joins un fichier avec un exemple : la colonne avec le numéro unique de chaque ligne (un genre de MasterKey en somme?) est la colonne B:B.
Typiquement, j'aimerais prendre la ligne identifiée par le numéro 18140 et la déplacer après celle identifiée par le numéro 18114.

Merci d'avance à ceux qui prendront le temps de me lire,

Cordialement,

Bruno
 

Pièces jointes

  • Classeur1.xlsm
    56.8 KB · Affichages: 29

vgendron

XLDnaute Barbatruc
Hello
un essai avec ce code
VB:
Sub Macro1()
'
' Macro1 Macro
'
Set RowInit = Application.InputBox("cliquez sur la ligne à déplacer", Type:=8)
Set RowTarget = Application.InputBox("cliquez sur la ligne au dessus de laquelle déplacer la selection", Type:=8)

RowInit.EntireRow.Cut
RowTarget.EntireRow.Insert shift:=xlDown

End Sub
 

Citronflexe

XLDnaute Junior
Bonjour vgendron, pierrejean

Merci beaucoup pour votre aide ! Les deux options marchent parfaitement. :)
J'ai une autre macro qui me permet d'étirer les formules à partir d'une ligne sélectionnée... j'essaie d'adapter ça à vos codes.

Pour ta macro @vgendron ,
Il faut que je me serve de la valeur RowTarget comme étant celle à partir de laquelle étirer mes formules ?

Pour la tienne @pierrejean ,
Je dois avouer que je ne comprend pas du tout ce qu'il s'y passe.. c'est la valeur de d qui m'intéresse pour la suite ?


Merci encore !!

Bruno
 

Citronflexe

XLDnaute Junior
Re,

Juste pour ma culture personnelle,

Comment on ferait pour déplacer une ligne APRES une autre ?
J'essaie de modifier vos codes pour faire cela mais ça ne donne pas grand chose de concluant.

J'ai essayé avec .Row.Insert Shift:=XlUp sans résultat...
Je cherche, parce qu'en réalité c'est mieux pour moi de pouvoir déplacer la ligne après en fin de compte!

Cordialement,

Bruno
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
258

Statistiques des forums

Discussions
311 725
Messages
2 081 939
Membres
101 844
dernier inscrit
pktla