Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Selectionner une zone sauf la dernière ligne

5 réponses
Avatar
Bruno RCSC
Bonjour

Win XP, Excel 2002

Pour sélectionner un tableau de taille variable, j'utilise :
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ou ActiveCell.CurrentRegion.Select

Comment dois je procéder pour sélectionner toute ma zone sans la dernière
ligne ?

Merci pour votre aide.

BH.

5 réponses

Avatar
anonymousA
Bonjour,

utiliser la propriété Resize de l'objet Range.

A+


Bonjour

Win XP, Excel 2002

Pour sélectionner un tableau de taille variable, j'utilise :
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ou ActiveCell.CurrentRegion.Select

Comment dois je procéder pour sélectionner toute ma zone sans la dernière
ligne ?

Merci pour votre aide.

BH.




Avatar
hasco
bonjour,

Voici une solution avec CurrentRegion :

ActiveCell.CurrentRegion.Resize(ActiveCell.CurrentRegion.Rows.Count -
1).Select

Et une autre Avec SpecialCells

Sub SelRegion()
Dim plg As Range
Set plg = Range("A3", ActiveCell.SpecialCells(xlLastCell))
plg.Resize(plg.Rows.Count - 1).Select

End Sub

bon courage


Bonjour

Win XP, Excel 2002

Pour sélectionner un tableau de taille variable, j'utilise :
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ou ActiveCell.CurrentRegion.Select

Comment dois je procéder pour sélectionner toute ma zone sans la dernière
ligne ?

Merci pour votre aide.

BH.





Avatar
Bruno RCSC
Merci Hasco, impeccable, les deux fonctionnent.

Question subsidiaire : par curiosité (le cas se présentera bien un jour !),
j'ai voulu faire la sélection de toute la zone sans la dernière colonne.
J'ai remplacé Rows par Columns mais cela ne donne pas le résultat attendu.
Quelle doit être la syntaxe ? Resize ne s'emploie pas avec les colonnes ?

Je précise que la phrase "utiliser la propriété Resize de l'objet Range" est
difficilement compréhensible à mon petit niveau de VBA.

Cordialement.

BH


"hasco" a écrit dans le message de news:

bonjour,

Voici une solution avec CurrentRegion :

ActiveCell.CurrentRegion.Resize(ActiveCell.CurrentRegion.Rows.Count -
1).Select

Et une autre Avec SpecialCells

Sub SelRegion()
Dim plg As Range
Set plg = Range("A3", ActiveCell.SpecialCells(xlLastCell))
plg.Resize(plg.Rows.Count - 1).Select

End Sub

bon courage


Bonjour

Win XP, Excel 2002

Pour sélectionner un tableau de taille variable, j'utilise :
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ou ActiveCell.CurrentRegion.Select

Comment dois je procéder pour sélectionner toute ma zone sans la dernière
ligne ?

Merci pour votre aide.

BH.







Avatar
hasco
La Méthode resize de l'objet Range comprend Deux arguments : en premier le
nombre de lignes du retaillage et en deuxième le nombre de colonnes du
retaillage de la sélection.

Par exemple: MaPlage.Resize( 3,2) donnera une plage de 3 lignes et 2 colonnes

Donc dans ce que nous avons utilisé si tu retaille suivant les colonnes il
faut mettre une virgule à la place du premier arguments ce qui devient

ActiveCell.CurrentRegion.Resize(,ActiveCell.CurrentRegion.columns.Count -
1).Select

Ou pour retailler les lignes et les colonnes

ActiveCell.CurrentRegion.Resize(ActiveCell.CurrentRegion.rows.Count -
1,ActiveCell.CurrentRegion.columns.Count - 1).Select

comme cela nous fait des écritures pas facile à analyser lorsqu'une erreur
se produit il est plus lisible de passer par des variables et surtout plus
facile à suivre pas à pas

exemple :

Sub SelPlage()
dim NLignes as long, NCols as long
dim Plg as Range

Set plg= ActiveCell.CurrentRegion

NLignes=plg.rows.count-1
NCols=plg.Columns.count-1

plg.resize(NLignes,NCols).Select
End Sub


Et Lorsque tu seras plus sûr de toi tu pourras revenir à une formulation
plus complexe.


Merci Hasco, impeccable, les deux fonctionnent.

Question subsidiaire : par curiosité (le cas se présentera bien un jour !),
j'ai voulu faire la sélection de toute la zone sans la dernière colonne.
J'ai remplacé Rows par Columns mais cela ne donne pas le résultat attendu.
Quelle doit être la syntaxe ? Resize ne s'emploie pas avec les colonnes ?

Je précise que la phrase "utiliser la propriété Resize de l'objet Range" est
difficilement compréhensible à mon petit niveau de VBA.

Cordialement.

BH


"hasco" a écrit dans le message de news:

bonjour,

Voici une solution avec CurrentRegion :

ActiveCell.CurrentRegion.Resize(ActiveCell.CurrentRegion.Rows.Count -
1).Select

Et une autre Avec SpecialCells

Sub SelRegion()
Dim plg As Range
Set plg = Range("A3", ActiveCell.SpecialCells(xlLastCell))
plg.Resize(plg.Rows.Count - 1).Select

End Sub

bon courage


Bonjour

Win XP, Excel 2002

Pour sélectionner un tableau de taille variable, j'utilise :
Range("A3").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
ou ActiveCell.CurrentRegion.Select

Comment dois je procéder pour sélectionner toute ma zone sans la dernière
ligne ?

Merci pour votre aide.

BH.












Avatar
Bruno RCSC
Merci,
Vos explications sont claires, compréhensibles et surtout mémorisables et
reproductibles.

Bon week end.

BH