web-dev-qa-db-fra.com

Comment déplacer la sélection d'une ligne vers le bas dans Excel 2007?

Est-il possible de déplacer une plage sélectionnée vers la ligne suivante?

Disons que j'ai "E9: H9" sélectionné et que la sélection se déplace sur "E10: H10". Y a-t-il un raccourci pour cela? La sélection ne doit pas être étendue mais déplacée d’une rangée vers le bas.

6
user48604

On dirait que vous avez juste besoin de quelque chose comme ça:

Sub moveselection()

Selection.Offset(1, 0).Select

End Sub

Cela déplacera votre sélection d'une ligne vers le bas sans changer la taille de la sélection.

12
Excellll

(a) Ce code ne descend pas d'une rangée comme dans la question

(b) Cela ne fonctionnera que sur la première ligne d'une sélection. Souhaitez-vous qu'il fonctionne sur une sélection de plusieurs lignes?

(c) Plutôt que d'appeler un sous-traitant pour cela, vous pouvez l'exécuter automatiquement en cliquant avec le bouton droit de la souris - vous pouvez le faire en ajoutant un clic droit sur l'onglet de votre feuille, Afficher le code, puis en le collant dans le code ci-dessous.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    On Error Resume Next
    Range("E" & CStr(Selection.Row) & ":" & "GN" & CStr(Selection.Row)).Select
End Sub
3
brettdj

Une alternative qui utilise des arguments nommés, et est donc beaucoup plus claire, est quelque chose comme ceci.

ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate

Un rowOffset positif déplace la sélection vers le bas de la feuille, un rowOffset négatif monte du nombre de lignes spécifié et un décalage de zéro laisse la ligne dans laquelle la sélection réside.

De même, les décalages positifs déplacent la sélection vers la droite, tandis que les décalages négatifs le déplacent vers la gauche. Bien entendu, zéro laisse la colonne inchangée.

Voir Propriété Range.Offset (Excel)

Deux découvertes liées pourraient également intéresser les futurs visiteurs.

  1. Procédez comme suit pour insérer une colonne. Selection.EntireColumn.Insert and beware Range.Insert, ce qui provoque l'erreur d'exécution 1004, du moins dans certaines circonstances, telles que les feuilles de calcul protégées (même si l'insertion de colonnes est autorisée tant qu'elle est protégée).
  2. La méthode qui vient d'être décrite laisse le point d'insertion dans la nouvelle colonne, ce que je n'avais pas remarqué jusqu'à ce que je vienne ici à la recherche d'une méthode pour déplacer la sélection (seulement pour découvrir que je n'en avais pas besoin!).
1
David A. Gray

D'accord,

Le curseur doit être dans la rangée et les plages "E" et "GN" doivent être ajustées pour différentes colonnes mais cela me fait gagner du temps:

Sub SelectRange()

  Dim RowNumber As Integer

  RowNumber = Selection.Row
  Range("E" & CStr(RowNumber) & ":" & "GN" & CStr(RowNumber)).Select

End Sub
0
user48604