Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dernière Ligne

14 réponses
Avatar
Jacquouille
Bonjour

Bien souvent, on cherche le numéro de ligne en se basant sur la dernière
cellule de la colonne A,
- soit DerL=Range("A65536").End(xlup).Row
- soit DerL=[A65536].End(3).Row
- et d'autres

En supposant que le tableau à analyser n'aie pas la même longueur dans
chaque colonne, comment puis-je trouver DerL par rapport à la cel non-vide
qui est le plus bas? (et en supposant que je ne sais pas où cette s*** se
trouve)
Mille et 2 mercis et bonne fin de WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.

4 réponses

1 2
Avatar
michdenis
| ne fera pas louper la dernière ligne occupée de la plage considérée.

En fait excel te retourne la dernière ligne que tu as utilisé dans excel
mais pas nécessaire la dernière ligne (ou cellule) vide que toi tu
recherches.Et, c'est là où le bât blesse !




"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
Re,
Merci pour ces éclaircissements que j'archive, mais convenons que déterminer
la dernière ligne du UsedRange, même si ça peut aller jusqu'à 65536 sur les
versions avant 2007, ne fera pas louper la dernière ligne occupée de la
plage considérée.

Par ailleurs, il n'y a pas à dire, c'est beau la science !
Longue vie à toi.
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Concernant ta ligne de code, fait le petit test suivant :

Suppose que dans un premier temps ta colonne
contient des données en A1:A19, ta ligne de code
va effectivement retourné 19
Suppose que tu effaces les 3 dernières données,
ta ligne de code continue de donnée 19 comme
dernière ligne... Est-ce normal docteur ?

En fait, c'est le même type de problème que l'utilisation
de "UsedRange". Excel continue de conserver en mémoire
l'espace de la feuille de calcul dont les données ont été
effacées. Il y a bien quelques trucs pour contenir ce
phénomène mais ta ligne de code toute seule est
problématique.

Sub Test()
x = ActiveCell.SpecialCells(xlLastCell).Row
End sub


Concernant la ligne de code de JB
derL = [B6:D10].Find("*", , , , xlByRows, xlPrevious).Row

Pour être exact, il devrait ajouter ce paramètre :
LookIn:=xlFormulas

Il faut se souvenir (voir l'aide de la méthode "Find" de l'objet "Range")
que certains paramêtres sont conservés par excel lors de l'utilisation
de la méthode "find" en vba ou via la feuille de calcul. Supposons que
dans la dernière ligne, il y a seulement une formule qui retourne ""
(rien)
si le paramètre LookIn:=xlvalues (suite à des recherches antérieurs)
et bien la méthode find ne sera pas capable de trouver la dernière ligne
qui contient une formula et retournera la ligne précédente où des cellules
affichent des "Valeurs".

Voilà pourquoi j'affirme que ces 2 méthodes ne s'appliquent pas à tous les
cas de figure.

Si ton individu est suffisamment imbécile peut être qu'il ne s'apercevra
pas
qu'il est déjà mort !


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:

Bonjour,
Pourrais tu, s'il te plait, expliquer dans quels cas les solutions
proposées
ne fournissent pas la dernière ligne utilisée, quelle que soit la colonne
?
Histoire qu'un imbécile ne meurt pas idiot ?
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Aucune des 2 propositions déjà reçues ne
répondent à tous les cas de figures


With Feuil1 'Adapte le nom de la feuille
'Trouve la dernière ligne occupée
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

'Trouve la dernière colonne occupée
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With



"Jacquouille" a écrit dans le message de
news: %23lNxGs$
Bonjour

Bien souvent, on cherche le numéro de ligne en se basant sur la dernière
cellule de la colonne A,
- soit DerL=Range("A65536").End(xlup).Row
- soit DerL=[A65536].End(3).Row
- et d'autres

En supposant que le tableau à analyser n'aie pas la même longueur dans
chaque colonne, comment puis-je trouver DerL par rapport à la cel
non-vide
qui est le plus bas? (et en supposant que je ne sais pas où cette s***
se
trouve)
Mille et 2 mercis et bonne fin de WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.








Avatar
Daniel.j
A moins de reinitialiser
Pas testé dans TOUS les cas de figures

Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
DAniel

--
FAQ MPFE
http://dj.joss.free.fr/faq.htm


"michdenis" a écrit dans le message de news:

| ne fera pas louper la dernière ligne occupée de la plage considérée.

En fait excel te retourne la dernière ligne que tu as utilisé dans excel
mais pas nécessaire la dernière ligne (ou cellule) vide que toi tu
recherches.Et, c'est là où le bât blesse !




"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
Re,
Merci pour ces éclaircissements que j'archive, mais convenons que
déterminer
la dernière ligne du UsedRange, même si ça peut aller jusqu'à 65536 sur
les
versions avant 2007, ne fera pas louper la dernière ligne occupée de la
plage considérée.

Par ailleurs, il n'y a pas à dire, c'est beau la science !
Longue vie à toi.
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Concernant ta ligne de code, fait le petit test suivant :

Suppose que dans un premier temps ta colonne
contient des données en A1:A19, ta ligne de code
va effectivement retourné 19
Suppose que tu effaces les 3 dernières données,
ta ligne de code continue de donnée 19 comme
dernière ligne... Est-ce normal docteur ?

En fait, c'est le même type de problème que l'utilisation
de "UsedRange". Excel continue de conserver en mémoire
l'espace de la feuille de calcul dont les données ont été
effacées. Il y a bien quelques trucs pour contenir ce
phénomène mais ta ligne de code toute seule est
problématique.

Sub Test()
x = ActiveCell.SpecialCells(xlLastCell).Row
End sub


Concernant la ligne de code de JB
derL = [B6:D10].Find("*", , , , xlByRows, xlPrevious).Row

Pour être exact, il devrait ajouter ce paramètre :
LookIn:=xlFormulas

Il faut se souvenir (voir l'aide de la méthode "Find" de l'objet "Range")
que certains paramêtres sont conservés par excel lors de l'utilisation
de la méthode "find" en vba ou via la feuille de calcul. Supposons que
dans la dernière ligne, il y a seulement une formule qui retourne ""
(rien)
si le paramètre LookIn:=xlvalues (suite à des recherches antérieurs)
et bien la méthode find ne sera pas capable de trouver la dernière ligne
qui contient une formula et retournera la ligne précédente où des
cellules
affichent des "Valeurs".

Voilà pourquoi j'affirme que ces 2 méthodes ne s'appliquent pas à tous
les
cas de figure.

Si ton individu est suffisamment imbécile peut être qu'il ne s'apercevra
pas
qu'il est déjà mort !


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:

Bonjour,
Pourrais tu, s'il te plait, expliquer dans quels cas les solutions
proposées
ne fournissent pas la dernière ligne utilisée, quelle que soit la colonne
?
Histoire qu'un imbécile ne meurt pas idiot ?
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Aucune des 2 propositions déjà reçues ne
répondent à tous les cas de figures


With Feuil1 'Adapte le nom de la feuille
'Trouve la dernière ligne occupée
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

'Trouve la dernière colonne occupée
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With



"Jacquouille" a écrit dans le message de
news: %23lNxGs$
Bonjour

Bien souvent, on cherche le numéro de ligne en se basant sur la dernière
cellule de la colonne A,
- soit DerL=Range("A65536").End(xlup).Row
- soit DerL=[A65536].End(3).Row
- et d'autres

En supposant que le tableau à analyser n'aie pas la même longueur dans
chaque colonne, comment puis-je trouver DerL par rapport à la cel
non-vide
qui est le plus bas? (et en supposant que je ne sais pas où cette s***
se
trouve)
Mille et 2 mercis et bonne fin de WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.












Avatar
michdenis
Perso, les boucles si l'application a un peu d'envergure,
je ne suis pas sûr que c'est la bonne approche !

Deuxièmement, essaie ta procédure si par exemple
les cellules ont reçu une couleur de fond mais sont vides...
tu vas avoir une surprise !




"Daniel.j" a écrit dans le message de news:

A moins de reinitialiser
Pas testé dans TOUS les cas de figures

Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
DAniel

--
FAQ MPFE
http://dj.joss.free.fr/faq.htm


"michdenis" a écrit dans le message de news:

| ne fera pas louper la dernière ligne occupée de la plage considérée.

En fait excel te retourne la dernière ligne que tu as utilisé dans excel
mais pas nécessaire la dernière ligne (ou cellule) vide que toi tu
recherches.Et, c'est là où le bât blesse !




"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
%
Re,
Merci pour ces éclaircissements que j'archive, mais convenons que
déterminer
la dernière ligne du UsedRange, même si ça peut aller jusqu'à 65536 sur
les
versions avant 2007, ne fera pas louper la dernière ligne occupée de la
plage considérée.

Par ailleurs, il n'y a pas à dire, c'est beau la science !
Longue vie à toi.
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Concernant ta ligne de code, fait le petit test suivant :

Suppose que dans un premier temps ta colonne
contient des données en A1:A19, ta ligne de code
va effectivement retourné 19
Suppose que tu effaces les 3 dernières données,
ta ligne de code continue de donnée 19 comme
dernière ligne... Est-ce normal docteur ?

En fait, c'est le même type de problème que l'utilisation
de "UsedRange". Excel continue de conserver en mémoire
l'espace de la feuille de calcul dont les données ont été
effacées. Il y a bien quelques trucs pour contenir ce
phénomène mais ta ligne de code toute seule est
problématique.

Sub Test()
x = ActiveCell.SpecialCells(xlLastCell).Row
End sub


Concernant la ligne de code de JB
derL = [B6:D10].Find("*", , , , xlByRows, xlPrevious).Row

Pour être exact, il devrait ajouter ce paramètre :
LookIn:=xlFormulas

Il faut se souvenir (voir l'aide de la méthode "Find" de l'objet "Range")
que certains paramêtres sont conservés par excel lors de l'utilisation
de la méthode "find" en vba ou via la feuille de calcul. Supposons que
dans la dernière ligne, il y a seulement une formule qui retourne ""
(rien)
si le paramètre LookIn:=xlvalues (suite à des recherches antérieurs)
et bien la méthode find ne sera pas capable de trouver la dernière ligne
qui contient une formula et retournera la ligne précédente où des
cellules
affichent des "Valeurs".

Voilà pourquoi j'affirme que ces 2 méthodes ne s'appliquent pas à tous
les
cas de figure.

Si ton individu est suffisamment imbécile peut être qu'il ne s'apercevra
pas
qu'il est déjà mort !


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:

Bonjour,
Pourrais tu, s'il te plait, expliquer dans quels cas les solutions
proposées
ne fournissent pas la dernière ligne utilisée, quelle que soit la colonne
?
Histoire qu'un imbécile ne meurt pas idiot ?
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Aucune des 2 propositions déjà reçues ne
répondent à tous les cas de figures


With Feuil1 'Adapte le nom de la feuille
'Trouve la dernière ligne occupée
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

'Trouve la dernière colonne occupée
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With



"Jacquouille" a écrit dans le message de
news: %23lNxGs$
Bonjour

Bien souvent, on cherche le numéro de ligne en se basant sur la dernière
cellule de la colonne A,
- soit DerL=Range("A65536").End(xlup).Row
- soit DerL=[A65536].End(3).Row
- et d'autres

En supposant que le tableau à analyser n'aie pas la même longueur dans
chaque colonne, comment puis-je trouver DerL par rapport à la cel
non-vide
qui est le plus bas? (et en supposant que je ne sais pas où cette s***
se
trouve)
Mille et 2 mercis et bonne fin de WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.












Avatar
Daniel.j
Oui tout a fait mais il etait bien indiqué
""Pas testé dans TOUS les cas de figures""
Daniel



"michdenis" a écrit dans le message de news:

Perso, les boucles si l'application a un peu d'envergure,
je ne suis pas sûr que c'est la bonne approche !

Deuxièmement, essaie ta procédure si par exemple
les cellules ont reçu une couleur de fond mais sont vides...
tu vas avoir une surprise !




"Daniel.j" a écrit dans le message de news:

A moins de reinitialiser
Pas testé dans TOUS les cas de figures

Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
DAniel

--
FAQ MPFE
http://dj.joss.free.fr/faq.htm


"michdenis" a écrit dans le message de news:

| ne fera pas louper la dernière ligne occupée de la plage considérée.

En fait excel te retourne la dernière ligne que tu as utilisé dans excel
mais pas nécessaire la dernière ligne (ou cellule) vide que toi tu
recherches.Et, c'est là où le bât blesse !




"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:
%
Re,
Merci pour ces éclaircissements que j'archive, mais convenons que
déterminer
la dernière ligne du UsedRange, même si ça peut aller jusqu'à 65536 sur
les
versions avant 2007, ne fera pas louper la dernière ligne occupée de la
plage considérée.

Par ailleurs, il n'y a pas à dire, c'est beau la science !
Longue vie à toi.
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Concernant ta ligne de code, fait le petit test suivant :

Suppose que dans un premier temps ta colonne
contient des données en A1:A19, ta ligne de code
va effectivement retourné 19
Suppose que tu effaces les 3 dernières données,
ta ligne de code continue de donnée 19 comme
dernière ligne... Est-ce normal docteur ?

En fait, c'est le même type de problème que l'utilisation
de "UsedRange". Excel continue de conserver en mémoire
l'espace de la feuille de calcul dont les données ont été
effacées. Il y a bien quelques trucs pour contenir ce
phénomène mais ta ligne de code toute seule est
problématique.

Sub Test()
x = ActiveCell.SpecialCells(xlLastCell).Row
End sub


Concernant la ligne de code de JB
derL = [B6:D10].Find("*", , , , xlByRows, xlPrevious).Row

Pour être exact, il devrait ajouter ce paramètre :
LookIn:=xlFormulas

Il faut se souvenir (voir l'aide de la méthode "Find" de l'objet
"Range")
que certains paramêtres sont conservés par excel lors de l'utilisation
de la méthode "find" en vba ou via la feuille de calcul. Supposons que
dans la dernière ligne, il y a seulement une formule qui retourne ""
(rien)
si le paramètre LookIn:=xlvalues (suite à des recherches antérieurs)
et bien la méthode find ne sera pas capable de trouver la dernière ligne
qui contient une formula et retournera la ligne précédente où des
cellules
affichent des "Valeurs".

Voilà pourquoi j'affirme que ces 2 méthodes ne s'appliquent pas à tous
les
cas de figure.

Si ton individu est suffisamment imbécile peut être qu'il ne s'apercevra
pas
qu'il est déjà mort !


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:

Bonjour,
Pourrais tu, s'il te plait, expliquer dans quels cas les solutions
proposées
ne fournissent pas la dernière ligne utilisée, quelle que soit la
colonne
?
Histoire qu'un imbécile ne meurt pas idiot ?
;o))
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"michdenis" a écrit dans le message de
news:
Aucune des 2 propositions déjà reçues ne
répondent à tous les cas de figures


With Feuil1 'Adapte le nom de la feuille
'Trouve la dernière ligne occupée
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

'Trouve la dernière colonne occupée
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With



"Jacquouille" a écrit dans le message
de
news: %23lNxGs$
Bonjour

Bien souvent, on cherche le numéro de ligne en se basant sur la
dernière
cellule de la colonne A,
- soit DerL=Range("A65536").End(xlup).Row
- soit DerL=[A65536].End(3).Row
- et d'autres

En supposant que le tableau à analyser n'aie pas la même longueur dans
chaque colonne, comment puis-je trouver DerL par rapport à la cel
non-vide
qui est le plus bas? (et en supposant que je ne sais pas où cette s***
se
trouve)
Mille et 2 mercis et bonne fin de WE
--
Bien amicalmement,
"Le vin est au repas ce que le parfum est à la femme."

Jacquouille.
















1 2