Sélectionner la dernière cellule vide d'une colonne

jp65

XLDnaute Junior
Bonjour le forum

Voici ma question.
J'ai un tableau dont je veux récupérer le N° de ligne de la dernière cellule vide en basant ma recherche sur la colonne A. Ce tableau est composé de groupes de données identiques, ces groupes étant séparés par des lignes vides.
La ligne vide à sélectionner est donc celle qui précède le dernier groupe de données.
Je joint un fichier pour visualiser ma demande.

Merci pour votre aide
 

Pièces jointes

  • Ligne vide.xlsx
    10.9 KB · Affichages: 31

Paritec

XLDnaute Barbatruc
Re : Sélectionner la dernière cellule vide d'une colonne

Re JP65 le forum
ton fichier en retour avec un message te donnant la ligne, en attendant de savoir ce que tu veux exactement
tu ouvres ton fichier et tu cliques sur une cellule de la feuil1
a+
Papou:eek:
 

Pièces jointes

  • Jp65 V1 .xlsm
    16.5 KB · Affichages: 55

jp65

XLDnaute Junior
Re : Sélectionner la dernière cellule vide d'une colonne

Bonjour Paritec

Merci pour ta réponse si rapide.
J'ai testé ton code et il convient parfaitement à mon besoin.
Le lancement du code ne dépend pas d'un événementiel spécifique mais son résultat va servir à alimenter
le reste du code dans lequel il va être intégré.

Merci encore Paritec

Bonne journée
 

job75

XLDnaute Barbatruc
Re : Sélectionner la dernière cellule vide d'une colonne

Bonjour jp65, Papou,

Pas besoin de VBA, cette formule matricielle suffit :

Code:
=MAX((A1:A1000="")*(A2:A1001<>"")*LIGNE(A1:A1000))
A valider par Ctrl+Maj+Entrée.

Adapter le nombre de lignes (1000) si nécessaire.

A+
 

job75

XLDnaute Barbatruc
Re : Sélectionner la dernière cellule vide d'une colonne

Re,

Si l'on y tient on peut placer dans un module standard cette fonction VBA :

Code:
Function DerniereLigneVide(colonne As Range)
Dim P As Range, a1$, a2$
Set P = Intersect(colonne.Parent.UsedRange, colonne.EntireColumn)
a1 = P.Address(External:=True)
a2 = P.Offset(1).Address(External:=True)
DerniereLigneVide = Evaluate("MAX((" & a1 & "="""")*(" & a2 & "<>"""")*ROW(" & a1 & "))")
End Function
A utiliser par exemple dans la feuille de calcul par cette formule :

Code:
=DerniereLigneVide(A:A)
A+
 

job75

XLDnaute Barbatruc
Re : Sélectionner la dernière cellule vide d'une colonne

Re,

Si l'on ne peut pas s'appuyer sur une colonne (A) déterminée, utiliser SOUS.TOTAL :

Code:
=MAX((SOUS.TOTAL(3;DECALER(A1:J1;LIGNE(A1:J1000)-1;))=0)*SIGNE(SOUS.TOTAL(3;DECALER(A1:J1;LIGNE(A1:J1000);)))*LIGNE(A1:J1000))
Toujours en matriciel.

On peut sans grande difficulté la transcrire en VBA comme précédemment.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 391
Messages
2 087 950
Membres
103 683
dernier inscrit
Cescodelvar