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

XL 2010 Macro sélectionner plage jusqu'à l'avant dernière ligne ???

Lvc

XLDnaute Nouveau
Hello

Je recherche à créer une macro pour sélectionner dans un tableau toutes les cellules des colonnes A à Q
jusqu'à l'avant dernière ligne òu il y a des valeurs.

Pourquoi : pour ensuite continuer une macro qui copiera toute les données issues de fonctions et ne collera plus que les valeur pour alléger mon fichier ( cette dernière partie ça devrait aller mais c'est la première qui me bloque depuis ce matin.

Quelqu'un peut-il m'aider svp ???

Merci d'avance

Vincent
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Plusieurs façons de procéder, entre autres :
1- Si la colonne A (à adapter) ne comporte pas de trou, donc il n'y a aucune cellule vide entre la première et la dernière. On part du haut et on descend :

VB:
Dim LI As Long
LI=Cells(1, "A").end(xlDown).Row -1

2- Si la colonne A (à adapter) a des trous, donc si il y a au moins une cellule vide entre la première et la dernière. On part du bas et on remonte :
VB:
Dim LI As Long
LI=Cells(Application.Rows.Count, "A").end(xlUp).Row -1
C'est celle que j'utilise le plus souvent mais à condition qu'il n'y ait aucune données dans la colonne A en dessous de ton tableau...

Comme l'a dit PAF, le -1 permet de déterminer l'avant dernière...
 

Lvc

XLDnaute Nouveau
Hello, désolé pour mon absence, une mauvaise grippe à soigner mais me revoilà.

Je vous remercie toutes et tous pour vos réponses, toutefois je me permets de repréciser ma demande :
Ce que ce veux c'est créer une macro pour atteinte une sélection de colonnes et de lignes non vides
comme ci-dessous, mais ne pas sélectionner la dernière ligne.
J'ai essayé d'inclure le critère ".Row -1" mais cela ne fonctionne pas, où dois-je le placer ?, cela est-il possible d'utiliser ".Row -1" dans cette macro ??


Merci d'avance pour votre aide


Vincent
__________________________________________________________________________________________________
Sub Dernière_Ligne_T_Syspro()

Sheets("Syspro").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Je reprends ton premier post. Si ton tableau commence en A1 (à adapter) :

VB:
Sub Macro1()
Dim O As Worksheet
Dim PL As Range

Set O = Sheets("Syspro")
Set PL = O.Range("A1").CurrentRegion
Set PL = PL.Resize(PL.Rows.Count - 1, PL.Columns.Count)
PL.Select
End Sub
 

Paf

XLDnaute Barbatruc
re bonjour à tous,

une autre façon:
VB:
...
'En décomposant
DerniereLigne = Range("A" & Rows.Count).End(xlUp).Row 'une manière courante de déterminer la dernière ligne
AvantDerniereLigne = DerniereLigne - 1
Plage = Range("A1:Q" & AvantDerniereLigne)
'ou
Plage = Range("A1:Q" & Range("A" & Rows.Count).End(xlUp).Row - 1)
...
 

Lvc

XLDnaute Nouveau
Hello les amis

J'ai appliqué les codes proposés et celui de Paf répond exactement à mon besoin.
Robert, j'ai essayé le tien mais j'ai eu un petit bug et en essayant dans la foulée celui de Paf cela a fonctionné
alors je l'ai adopté par facilité.
Je vous remercie vivement pour votre aide, grâce à vous je vais pouvoir alléger mon
fichier et travailler avec plus de rapidité et moins d'énervement.

Bon W.E

Amicalement

Vincnet
 

Discussions similaires

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