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

Dernière ligne non vide (et non dernière cellule)

  • Initiateur de la discussion Initiateur de la discussion Pseudoto
  • 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 !

Pseudoto

XLDnaute Nouveau
Bonjour,

Je reviens à la charge avec un sujet idiot : la sélection de la dernière ligne non totalement vide d'une plage de données.

J'ai trouvé ça et là des tutos mais ça n'indique que la dernière la cellule non vide d'une colonne....

Or quand je fais :

Code:
Sheets("2011.test").Range("A1:E1").End(xlDown).Select
    Selection.Interior.ColorIndex = 1

Bah ça prend la première cellule non vide de la colonne 1 .... 😡

L'idée est ensuite de me servir de cette première ligne comme d'un range (c'est possible ?) pour un filtre élaboré

Code:
Sheets("Données").Range("A1:M65536").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Sheets("Données").Range("P1:Q2"), CopyToRange:??????????????????????, Unique:=False

Où là, franchement, j'arrive pas à sélectionner et entrer le bon range pour le coller ...

Please, help me avant que je ne me foute par la fenêtre, le PC avec 😱
 
Re : Dernière ligne non vide (et non dernière cellule)

Merci Dranreb,

C'était une de mes pistes...mais ensuite, comment sélectionner la ligne juste en dessous de ce range ainsi constitué ?

L'idée est bien de coller (voir même de décaler d'une ligne) un second bloc, à la suite d'un premier ...
 
Re : Dernière ligne non vide (et non dernière cellule)

Merci de cette nouvelle aide...que j'ai aussi testé. Là franchement, y'a des choses que je ne comprends pas.

Pourquoi par exemple :

Code:
Sheets("2011.test").Select
    UsedRange.Select
    Rows(8).EntireRow.Select

marche et

Code:
Sheets("2011.test").Usedrange.select
Rows(8).EntireRow.Select

ne marche pas oO

Par ailleurs, pour le PlgX, comment je peux la définir comme étant l'usedrange de ma feuille ? Est ce une donnée type range que je vais pouvoir utiliser dans mon filtre élaboré ?
 
Re : Dernière ligne non vide (et non dernière cellule)

Absolument. Partout ou une méthode attend un Range on peut lui passer une variable de type Range correctement initialisée, ou toute expression de type Range telle que mon exemple. Et elle peut de même servir de qualificateur de toute méthode de l'objet Range.
 
Dernière édition:
Re : Dernière ligne non vide (et non dernière cellule)

Alors :

@david84 : je connaissais le site. Mais hormis si je suis neuneu, la procédure qu'il donne pour une ligne donne bel et bien une cellule (je viens de tester sa macro) et non une ligne, ce qui m'est nécessaire dans le cas d'un filtre élaboré où je vais coller dans une ligne.

@Dranreb : pour définir PlgX, j'essaie de faire
Code:
Dim Plgx
Sheets("2011.test").Select
Plgx = Activesheet.Usedrange

??
 
Re : Dernière ligne non vide (et non dernière cellule)

Hahem ...

Bon alors, dans l'ordre des tests :

La macro de david 84 permet bien de récup le numéro de la ligne suivant la dernière ligne non vide de la feuille...bon.

Ensuite, j'ai commencé à faire

Code:
   Call dernièreligneFeuille2
    
    Set PlgX = Expression range
    Plgx = Sheets("2011.test").Rows(LigneSuivante)

Mais ça me renvoie ma 34567e erreurs de la journée :/
 
Re : Dernière ligne non vide (et non dernière cellule)

Toujours affecter par un Set une expression Range à une variable Range:
VB:
Set Plgx = Sheets("2011.test").Rows(LigneSuivante)
sinon il essaie de travailler avec la propriété par défaut de l'objet Range qui est Value.
Bonne soirée.
 
Re : Dernière ligne non vide (et non dernière cellule)

Je ne comprends pas tout Dranreb, je suis vraiment débutant (même si de beaux restes quand même).

Mon soucis est : si j'ai déclaré ce Plgx, pourquoi je ne peux pas ensuite l'utiliser, par exemple avec

Code:
Plgx.Select

Alors que c'est un range ...
 
Re : Dernière ligne non vide (et non dernière cellule)

Boujour
Vous pouvez tout à fait executer Plgx.Select si Plgx est une variable Range correctement initialisée, c'est à dire si elle correspond à une plage de cellules bien définie d'une feuille de calcul. Cette définition se fait en y affectant préalablement par un Set une expression Range qui représente cette plage.
À+
 
Re : Dernière ligne non vide (et non dernière cellule)

Bonjour,

Merci de votre aide et après avoir visionné quelques tutoriaux mode débutant, le problème venait bien de la définition du range.

En utilisant la macro donnée plus haut pour le saut de 2 lignes, j'ai obtenu ça :

Code:
    Sheets("2011.test").Select
    Set plagesuivante = Intersect(ActiveSheet.Range("A:M"), ActiveSheet.Rows(numerosaut2lignes()))
    
    Sheets("Données").Range("A1:M65536").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Sheets("Données").Range("P1:Q2"), CopyToRange:=plagesuivante, Unique:=False

Ce ne fut pas sans transpirer 😱
 
- 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
3
Affichages
197
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…