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

XL 2019 Selection.Offset

  • Initiateur de la discussion Initiateur de la discussion gg13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gg13

XLDnaute Occasionnel
Bonjour,
Je voudrais sélectionner une plage de cellules avec la fonction Selection.Offset si possible ou autre.
J’arrive à me positionner sur la dernière cellule d’une colonne (ex A80) et je voudrais sélectionner
la plage par exemple A80 ; A70. (la plage varie et peut être quelconque)
J’ai testé plusieurs écritures rien ne marche.

Merci si vous pouvez m’aider.
GG13
 
Bonjour gg13

1) Quelle est la logique à cette sélection
2) A quoi va t'elle vous servir

En développement Objet nous n'avons pas besoin de faire de ".select"
pour appliquer un paramètre à la plage 🤔

A+
 
Bonjour BrunoM45
En fait je cherche simplement à sélectionner une plage pour la copier.
je trouve la dernière cellule avec Range("A" & Derlig).Select
et je pensais que avec Selection.Offset je pourrais copier une plage, mais cette fonction sélectionne une autre cellule mais pas une plage.
gg13

 
Re

Donc c'est bien ce que je disais, il est inutile de sélectionner pour copier 😉

2 Possibilités
Code:
Sub Test1()
  With ActiveSheet
    .Range("A1").CurrentRegion.Copy
  End With
End Sub

Sub Test2()
  Dim dCol As Long, dLig As Long
  With ActiveSheet
    dCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    dLig = .Cells(Rows.Count, 1).End(xlUp).Row
    .Range(.Cells(1, 1), .Cells(dLig, dCol)).Copy
  End With
End Sub

A+
 
 
Pour test 1
comment est définie CurrentRegion ???

Pour le test 2
en fait je reste dans la même colonne donc je n'ai besoin que de la plage de la cellule active à
une autre au-dessus ou au dessous.


Peut être
Sub Test2()
Dim dLig As Long
With ActiveSheet
dLig = .Cells(Rows.Count, 1).End(xlUp).Row
.Range(.Cells(1, 1), .Cells(dLig).Copy
End With
End Sub

Que représente Range(.Cells(1, 1) ??
Merci pour ton aide
GG13
 
Bonsoir à tous,

CuurrentRegion est l'équivalent en Excel de:
  • se placer sur une cellule
  • tapez Ctrl + * (contrôle + touche "*")
Ce qui a pour effet de sélectionner la plus petite plage rectangulaire autour de la cellule courante :
  • limitée par une colonne vide en allant vers la droite
  • limitée par une colonne vide en allant vers la gauche
  • limitée par une ligne vide en allant vers le haut
  • limitée par une colonne vide en allant vers le bas

Attention: autant CurrentRegion que l'instruction END() peuvent renvoyer une plage ou cellule erronée si lors du processus des colonnes ou lignes sont masquées.

 
Dernière édition:
Mapomme.
Merci pour cette explication, très utile je la garde en réserve, mais ça ne répond pas à mon problème.
Si je suis en cellule A80 et que je dois sélectionner 10 noms, au-dessus ou au dessous, je dois sélectionner la plage de la cellule de départ jusqu'à la cellule d'arrivée.
Ça je sais le faire avec une plage celldep et celllfin select mais je pensais qu'une écriture plus rapide et plus "professionnelle " pouvait exister.
GG13
 
Re,

Quelque chose du genre? (sélection de 10 cellules vers le haut)
VB:
Cells(Rows.Count, "a").End(xlUp).Offset(-9).Resize(10)

Si vous voulez 10 cellules vers le bas :
VB:
Cells(Rows.Count, "a").End(xlUp).Resize(10)
 
Dernière édition:
Re,

Voyons, voyons 😳 ! C'est le début de la syntaxe. Il faut ensuite en faire ce que vous voulez.
Par exemple :
VB:
Cells(Rows.Count, "a").End(xlUp).Offset(-9).Resize(10).Select
'ou
Cells(Rows.Count, "a").End(xlUp).Offset(-9).Resize(10).Copy
'ou autre chose
 
Bonjour,
J'ai fini par comprendre ce que représente RESIZE
Mapomme, la soluttion marche si j'écris des chiffres.

Cells(Rows.Count, "Q").End(xlUp).Offset(-7).Resize(8).Copy '
Mais les valeurs
Offset et Resize sont des variables dont j'ai testé avec X et Y

Cells(Rows.Count, "Q").End(xlUp).Offset(X).Resize(Y).Copy

Mais les variables X et Y ne passent pas.

Si quelqu'un peut me dire comment écrire cette fonction,merci
GG13
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…