Je ne suis pas sûr qu'il existe un moyen de "déplacer" les lignes à l'aide du clavier, mais l'utilisation de c&p et l'insertion/suppression de lignes à l'aide du clavier devraient offrir la même fonctionnalité :
- naviguer vers la première cellule (la plus à gauche) de la ligne à déplacer ;
- touchez SHIFT + SPACE pour sélectionner la ligne entière ;
- touchez CTRL + C pour copier la ligne ;
- touchez CTRL + - pour supprimer la ligne en cours ;
- naviguer vers la ligne cible ;
- touchez ALT + I pour ouvrir le
Insert
menu ;
- touchez R pour insérer une nouvelle ligne (la ligne actuelle sera décalée vers le bas) ;
- touchez CTRL + V pour coller la rangée à son nouvel emplacement.
Comme les opérations de couper-coller sont parfois assez gênantes, vous pouvez créer une simple macro pour couper les cellules et une autre pour les coller, en déplaçant le contenu existant vers le bas.
Voici un code très simple pour "déplacer" les cellules sélectionnées :
Option Explicit
Sub CopyAndCut
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as Object
Dim oSelections As Object
' ---------------------------------------------------------
' get access to the document and selections (if any)
document = ThisComponent.CurrentController.Frame
oSelections = ThisComponent.getCurrentSelection()
If IsNull(oSelections) Then Exit Sub
' ---------------------------------------------------------
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
' -------------------------------------------------------------
' Check the width of the selection - if 1024 columns, we assume
' the complete row was selected and should get deleted
If 1024 = oSelections.Columns.getCount() Then
dispatcher.executeDispatch(document, ".uno:DeleteRows", "", 0, Array())
End If
End Sub
Sub InsertWithMoveDown
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as object
' ---------------------------------------------------------
' get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ---------------------------------------------------------
' Paste contents with "Move Down" option
Dim args1(5) as New com.sun.star.beans.PropertyValue
args1(0).Name = "Flags"
args1(0).Value = "A"
args1(1).Name = "FormulaCommand"
args1(1).Value = 0
args1(2).Name = "SkipEmptyCells"
args1(2).Value = false
args1(3).Name = "Transpose"
args1(3).Value = false
args1(4).Name = "AsLink"
args1(4).Value = false
args1(5).Name = "MoveMode"
args1(5).Value = 0
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub
Sub InsertWithMoveRight
' ---------------------------------------------------------
' define variables
Dim document as object
Dim dispatcher as object
' ---------------------------------------------------------
' get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
' ---------------------------------------------------------
' Paste contents with "Move Right" option
Dim args1(5) as New com.sun.star.beans.PropertyValue
args1(0).Name = "Flags"
args1(0).Value = "A"
args1(1).Name = "FormulaCommand"
args1(1).Value = 0
args1(2).Name = "SkipEmptyCells"
args1(2).Value = false
args1(3).Name = "Transpose"
args1(3).Value = false
args1(4).Name = "AsLink"
args1(4).Value = false
args1(5).Name = "MoveMode"
args1(5).Value = 1
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args1())
End Sub
Après avoir copié le code dans votre bibliothèque utilisateur, il suffit d'assigner CopyAndCut
à, par exemple, Alt + C , InsertWithMoveDown
à, par exemple, Alt + V et InsertWithMoveRight
à, par exemple, Alt + R (tous ces raccourcis sont vides par défaut).
Vous pouvez maintenant sélectionner des cellules ou des lignes à l'aide de la souris ou du clavier, les découper à l'aide de la touche Alt + C déplacez-vous jusqu'à la cellule cible et collez-les à l'aide de la fonction Alt + V o Alt + R .