la derniere ligne sans connaitre la colonne

bertgrav

XLDnaute Occasionnel
bonjour,

comment connaitre la derniere ligne utilisée, sans connaitre par avance la colonne ?
je voudrais savoir où se situe la derniéré ligne dont au moins une cellule est remplie

j'ai fais une macro qui contrôle toutes les lignes à partir de chaque colonne, mais c'est trés trés trés long 2 compteurs....
n'y a t il pas plus simple
et encore dans le fichier joint je me limite à 20 colonnes. [file name=derniereligne.zip size=7333]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/derniereligne.zip[/file]
 

Pièces jointes

  • derniereligne.zip
    12.3 KB · Affichages: 27
  • derniereligne.zip
    12.3 KB · Affichages: 24
  • derniereligne.zip
    12.3 KB · Affichages: 23

bertgrav

XLDnaute Occasionnel
oh la la j'ai honte !


pourquoi 2 compteurs ?

Avec 1 seul ça suffit et ça va beaucoup plus vite


mais si quelqu'un à la solution directement

je prends

chantal [file name=derniereligne_20060428070826.zip size=7236]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/derniereligne_20060428070826.zip[/file]
 

Pièces jointes

  • derniereligne_20060428070826.zip
    7.1 KB · Affichages: 15
P

Pierriot93

Guest
Bonjour bertgrav, dull

tu peux aussi essayer le code ci dessous

Sub test()
Dim MaPlage As Range, c As Range, MaLigne As Integer
Cells.SpecialCells(xlCellTypeConstants).Select
Set MaPlage = Selection
MaLigne = 1
For Each c In MaPlage

If MaLigne < c.Row Then MaLigne = c.Row

Next c
MsgBox ' la derniére ligne est la ligne : ' & MaLigne

End Sub

@+
 
A

AV

Guest
Ave,

La dernière ligne renseignée de la feuille :

MsgBox Cells.Find('*', , 1, , 1, 2).Row

PS : Les méthodes utilisatant les ''xlCellTypeLastCell'' et ''UsedRange'' sont à déconseiller car eles tiennent compte du formatage et non exclusivement du contenu

AV [aaa]
 

chris

XLDnaute Barbatruc
bonjour

AV pourrais-tu détailler les paramètres du find

Tu en a prévu 6 mais comme on peut aller, d'après ce que donne l'aide sur cette fonction, à 9, j'ai du mal à décoder.

Merci

PS : je viens de tester : cela me renvoie l'erreur : l'indice n'appartient pas à la sélection.

Message édité par: chris, à: 28/04/2006 09:40
 
A

AV

Guest
Salut,

''...pourrais-tu détailler les paramètres du find..''

En version ''non édulcorée'' ça fait :
MsgBox Cells.Find('*', , xlFormulas, , xlByRows, xlPrevious).Row

''... je viens de tester : cela me renvoie l'erreur : l'indice n'appartient pas à la sélection..''

?? si tu as un exemple à transmettre pour voir ce qui se passe...

AV [aaa]
 
A

AV

Guest
Re,

Hum..hum..
''..j'ai essayé celle à Pierriot93 ça fonctionne trés bien,...''


Tu devrais pourtant t'en méfier : si une cellule contient une formule du type =SI(A1='''';''''), elle ne sera pas prise en compte du fait de l'emploi de l'argument : ''xlCellTypeConstants''

C'est toi qui vois...
AV [aaa]
 
A

AV

Guest
Ave,

MsgBox Cells.Find('*', , , , , xlPrevious).Row

''...par vba si tu cherche la derniere ligne vraiment!!!!!! non vide...''

Je ne voudrais pas te chagriner nin avoir l'air d'insister, mais il ne faut jamais faire l'impasse (sous peine de surprise) sur l'argument ''SearchOrder'' ni sur l'argument LookIn qu'il faut mettre à ''xlFormulas''

Extrait de l'aide :
** début de copie **
Les paramètres des arguments LookIn, LookAt, SearchOrder et MatchByte sont enregistrés chaque fois que vous utilisez cette méthode. Si vous ne spécifiez aucun paramètre pour ces arguments lors du prochain appel de la méthode, les paramètres enregistrés sont utilisés. Le fait de définir les paramètres de ces arguments modifie les paramètres de la boîte de dialogue Rechercher, ce qui a pour effet de changer les paramètres enregistrés qui sont utilisés lorsque vous ne spécifiez pas les arguments. Pour éviter toute ambiguïté, définissez ces arguments de façon explicite chaque fois que vous utilisez cette méthode.
** fin de copie **

AV [aaa]
 
N

Nougat

Guest
Bonjour le forum

Etant moi aussi a la recherche de la 'vrai' derniere cellule non vide sur ma feuille je suis donc tombé sur plusieurs fils qui resortaient toujours la même methode du Used Range mais qui me posait problème car il me donne systématiquement la ligne 59 alors que cela devrai être la 16.
Cette ligne 59 correspond a la derniere ligne de mon Used Range (plage de cellules utilisée, tout en bas de la barre de defilement) mais elle ne sont pas toutes remplies bien au contraire.
La methode de AV par contre marche Nikel Chrome.
 

Discussions similaires