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

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

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