XL 2016 Derniere cellule non vide

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

KTM

XLDnaute Impliqué
Salut Cher forum
j'ai une Plage [A3:A55]
J'aimerais récupérer par code vba le numéro de la première cellule non vide en partant de A55
Merci
 
Bonsoir le fil

KTM
La première ou la dernière (parce que ton titre est en contradiction avec ton message) 😉

Sinon pourquoi le VBA, alors qu'une formule peut le faire?

dernière
=RECHERCHE(2;1/($A$1:$A$54<>"");$A$1:$A$54)

première
=INDEX($A$1:$A$54;EQUIV(VRAI;INDEX(($A$1:$A$54<>0);0);0))
 
Bonjour KTM
Bonjour JM (mdr)
Bonjour Hervé (Content de te Croiser , j'espère que tu vas bien ?)
Bonjour Bernard , il faudrait que je m'y mette , j'ai récolté un Max de Tutos et autres exemples sur les Tableaux ( ListObjects ), mais je ne m'y suis pas encore attelé ( je ne dois pas être moderne) , je n'utilise pas personnellement Excel , peut être la raison ! Lol
Bonne journée
jean marie
 
Bonjour à tous,

Il faut bien voir que End(xlUp) ne va pas bien si la feuille est filtrée.

Par ailleurs avec les tableaux structurés ListObjects(1).Range.Row + ListObjects(1).DataBodyRange.Rows.Count ne donne pas la bonne valeur si la dernière ligne est vide.

A+
 
Non, l'objet Range n'a pas de collection ListRows, c'est le ListObject qui a une collection ListRows d'objets ListRow et une collection ListColumns d'objets ListColumn. L'objet ListRow a une propriété Range, le ListColumn aussi, et en plus une DataBodyRange, le ListObject aussi, et en plus une HeaderRowRange et une TotalsRowRange. En ajoutant que le ListObject a aussi une TableStyle, je croyais naïvement avoir fait le tour de ce qu'il fallait savoir, mais l'Explorateur d'objets m'a révélé qu'il n'en était rien…
 
Dernière édition:
Bonsoir à tous 🙂

J'avais, il y a quelques temps, tenter de faire un fonction qui retourne la dernière cellule (range) non vide de la première colonne d'une plage.
Il fallait que ça fonctionne avec une plage quelconque, avec un tableau structuré ou non inclus dans la plage, avec des lignes masquées (ou filtrées) ou non.

J'ai pondu ce qui suit:
VB:
Function DerCellNonVide(xplage As Range) As Range
Dim i&, j&
   On Error Resume Next
   i = Application.Match(999 ^ 9, xplage.Columns(1), 1)
   j = Application.Match(String(255, "z"), xplage.Columns(1), 1)
   On Error GoTo 0
   If i + j <> 0 Then Set DerCellNonVide = xplage.Columns(1).Cells(IIf(i > j, i, j), 1)
End Function

Divers exemples figurent dans le fichier joint.

Pouvez-vous critiquer en espérant que je n'ai pas laissé passer un cas évident ou trivial d'échec ?

Merci

edit: version v1a plus concise.
 

Pièces jointes

Dernière édition:
- 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
10
Affichages
511
Réponses
4
Affichages
148
Retour