Selectionner une zone sauf la dernière ligne

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
anonymousA
Le #4465611
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.




hasco
Le #4465601
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.





Bruno RCSC
Le #4465591
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"
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.







hasco
Le #4465491
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"
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.












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

Bon week end.

BH
Publicité
Poster une réponse
Anonyme