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

Dernière ligne utilisée d'une feuille de calcul

7 réponses
Avatar
Herve Magaud
Bonjour,

je cherche à connaitre le n° de la dernière ligne non vide d'une feuille de
calcul sous Excel 2000

et dans le même ordre d'idée,

Lorsque je crée une feuille de calcul vierge (toujours Excel 2000)
l'ascenseur de défilement vertical de la page est dimensionné pour un nombre
de lignes égal à la hauteur de l'écran + 1 ligne (à peu près).
Si j'écris dans une cellule de la ligne 1000 (par exemple), l'ascenseur va
se redimensionner pour me permettre de défiler sur 1000 lignes (ce qui est
normal). Mais si ensuite j'efface toutes les lignes de 100 à 1000,
(autrement dit, la dernière ligne non vide est la ligne 100) l'ascenseur
reste dimensionné pour 1000 lignes, et il devient difficile de l'utiliser
pour se positionner efficacement.
Est-ce qu'il existe une variable ou une propriété VBA à redéfinir pour
réajuster la barre de défilement.


Merci d'avance

7 réponses

Avatar
GG.barbu
Bonsoir Hervé

ci joint pour dernière ligne utilisée : à adapter suivant tes besoins
LIGNE = Range("A65536").End(xlUp).Row
Range("A65536").End(xlUp).Activate
temp = Range("A65536").End(xlUp).Value
MsgBox LIGNE & " " & temp

pour le reste de ta question, je n'ai pas la réponse

bonsoir A +





Bonjour,

je cherche à connaitre le n° de la dernière ligne non vide d'une feuille de
calcul sous Excel 2000

et dans le même ordre d'idée,

Lorsque je crée une feuille de calcul vierge (toujours Excel 2000)
l'ascenseur de défilement vertical de la page est dimensionné pour un nombre
de lignes égal à la hauteur de l'écran + 1 ligne (à peu près).
Si j'écris dans une cellule de la ligne 1000 (par exemple), l'ascenseur va
se redimensionner pour me permettre de défiler sur 1000 lignes (ce qui est
normal). Mais si ensuite j'efface toutes les lignes de 100 à 1000,
(autrement dit, la dernière ligne non vide est la ligne 100) l'ascenseur
reste dimensionné pour 1000 lignes, et il devient difficile de l'utiliser
pour se positionner efficacement.
Est-ce qu'il existe une variable ou une propriété VBA à redéfinir pour
réajuster la barre de défilement.


Merci d'avance






Avatar
michdenis
Bonjour Herve,

Pour solutionner ton problème d'ascenseur, copie ce qui suit dans le ThisWorkbook de ton projet.
Cette ligne de code va redimensionner pour excel l'espace (la plage de cellules) réel occupé par ton projet.
Sans t'en rendre compte, ceci solutionne plusieurs désagréments reliés à la façon dont excel mémorise l'espace réel occupé par
l'application.

'----------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Sh.UsedRange

End Sub
'----------------------


Salutations!




"Herve Magaud" a écrit dans le message de news: 4373d633$0$20856$
Bonjour,

je cherche à connaitre le n° de la dernière ligne non vide d'une feuille de
calcul sous Excel 2000

et dans le même ordre d'idée,

Lorsque je crée une feuille de calcul vierge (toujours Excel 2000)
l'ascenseur de défilement vertical de la page est dimensionné pour un nombre
de lignes égal à la hauteur de l'écran + 1 ligne (à peu près).
Si j'écris dans une cellule de la ligne 1000 (par exemple), l'ascenseur va
se redimensionner pour me permettre de défiler sur 1000 lignes (ce qui est
normal). Mais si ensuite j'efface toutes les lignes de 100 à 1000,
(autrement dit, la dernière ligne non vide est la ligne 100) l'ascenseur
reste dimensionné pour 1000 lignes, et il devient difficile de l'utiliser
pour se positionner efficacement.
Est-ce qu'il existe une variable ou une propriété VBA à redéfinir pour
réajuster la barre de défilement.


Merci d'avance
Avatar
Philippe Noss
Bonjour
Pour le problème d'ascenseur, il se peut qu'il suffise d'enregistrer
le classeur.
Il peut aussi etre necessaire de supprimmer les lignes plutot que de
les effacer.
Est sinon, utiliser le code de MichDenis
Slts
Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html
Avatar
michdenis
Bonjour Philippe,

Je t'invite à tester la proposition que j'ai faite à Herve Magaud.

Cela résout bien plus que l'ascenseur... la commande « Édition/atteindre/cellules/dernières cellules répond adéquatement après
suppression des données. Son équivalent VBA, "Feuil1.UsedRange.SpecialCells (xlCellTypeLastCell). Select" fonctionne correctement
aussi.

Bien que pas testé expressément, il se pourrait bien que l'obésité maladive de certains classeurs remarqués par les utilisateurs
soit résolue, et ce, sans avoir rien à faire... même pas besoin d'enregistrer le classeur....!!! Un petit croissant avec ça? ;-)))


Salutations!


"Philippe Noss" a écrit dans le message de news:
Bonjour
Pour le problème d'ascenseur, il se peut qu'il suffise d'enregistrer
le classeur.
Il peut aussi etre necessaire de supprimmer les lignes plutot que de
les effacer.
Est sinon, utiliser le code de MichDenis
Slts
Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html
Avatar
Herve Magaud
Merci Michdenis,

" Édition/atteindre/cellules/dernières cellules " et son équivalent VBA
répondent exactement à ma première question.
C'est à dire trouver la dernière ligne/cellule.

Le problème, maintenant, c'est que une fois trouvé cet dernière, j'ai beau
l'effacer, la supprimer, supprimer des lignes et des colonnes au dessus,
"dernière cellule" renvoie toujours sur la même cellule .....vide.





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

Bonjour Philippe,

Je t'invite à tester la proposition que j'ai faite à Herve Magaud.

Cela résout bien plus que l'ascenseur... la commande «
Édition/atteindre/cellules/dernières cellules répond adéquatement après
suppression des données. Son équivalent VBA,
"Feuil1.UsedRange.SpecialCells (xlCellTypeLastCell). Select" fonctionne
correctement
aussi.

Bien que pas testé expressément, il se pourrait bien que l'obésité
maladive de certains classeurs remarqués par les utilisateurs
soit résolue, et ce, sans avoir rien à faire... même pas besoin
d'enregistrer le classeur....!!! Un petit croissant avec ça? ;-)))


Salutations!


"Philippe Noss" a écrit dans le message de news:

Bonjour
Pour le problème d'ascenseur, il se peut qu'il suffise d'enregistrer
le classeur.
Il peut aussi etre necessaire de supprimmer les lignes plutot que de
les effacer.
Est sinon, utiliser le code de MichDenis
Slts
Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html




Avatar
Herve Magaud
Oups , j'ai rien dit, ça marche très bien.

J'avais seulement fait l'essai avec la fonction excel qui ne met pas à jour
le compteur de la dernière cellule.
Contrairement à la propriété UsedRange de VBA qui elle recalcule la dernière
cellule, et redimensionne l'ascenseur.

Encore merci Michdenis, tu es mon héros, gloire à toi et à ta descendance
sur 8 générations.



"Herve Magaud" a écrit dans le message de
news: 4375e585$0$7345$
Merci Michdenis,

" Édition/atteindre/cellules/dernières cellules " et son équivalent VBA
répondent exactement à ma première question.
C'est à dire trouver la dernière ligne/cellule.

Le problème, maintenant, c'est que une fois trouvé cet dernière, j'ai beau
l'effacer, la supprimer, supprimer des lignes et des colonnes au dessus,
"dernière cellule" renvoie toujours sur la même cellule .....vide.





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

Bonjour Philippe,

Je t'invite à tester la proposition que j'ai faite à Herve Magaud.

Cela résout bien plus que l'ascenseur... la commande «
Édition/atteindre/cellules/dernières cellules répond adéquatement après
suppression des données. Son équivalent VBA,
"Feuil1.UsedRange.SpecialCells (xlCellTypeLastCell). Select" fonctionne
correctement
aussi.

Bien que pas testé expressément, il se pourrait bien que l'obésité
maladive de certains classeurs remarqués par les utilisateurs
soit résolue, et ce, sans avoir rien à faire... même pas besoin
d'enregistrer le classeur....!!! Un petit croissant avec ça? ;-)))


Salutations!


"Philippe Noss" a écrit dans le message de news:

Bonjour
Pour le problème d'ascenseur, il se peut qu'il suffise d'enregistrer
le classeur.
Il peut aussi etre necessaire de supprimmer les lignes plutot que de
les effacer.
Est sinon, utiliser le code de MichDenis
Slts
Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html








Avatar
michdenis
Bonjour Herve,

Le concept de « UsedRange» n'est pas si évident à saisir.

Imagine une feuille vierge, et tu fais les tests suivants :

A)
Tu modifies le format de cellules d'une colonne entière pour celui de ton choix.... cela n'affecte pas le concept de « UsedRange»,
la dernière cellule occupée est A1. Tu peux refaire le même test en ajoutant à chaque cellule de la colonne une bordure, le résultat
est le même. Même chose si tu modifies le nom de la police de caractère ou la grosseur de caractère, que tu utilises un caractère
gras ou en italique sur toute une colonne.

En résumé, tant et aussi longtemps qu'une donnée (texte ou numérique) n'a pas été saisie dans la feuille, le format appliqué aux
cellules n'ont (ne semble pas) d'effet sur « UsedRange» cependant, dès que tu insères, une donnée dans la feuille, tu définis le
UsedRange. Le fait d'effacer la donnée ne supprimera pas le UsedRange ... Excel retiendra alors la notion de format jusqu'à la
dernière ligne occupée par valeur. Le format des cellules au-delà de cette ligne sera ignoré.

Au niveau des colonnes, dans une feuille vierge, si tu formates la totalité de la colonne D : D et que tu insères une donnée en A10,
le usedRange sera A10:D10. Dès qu'il y a des données sur une ligne, le format des colonnes pour cette ligne même si le reste de la
ligne est vide est pris en considération. De même, si tu effaces le contenu de A10, la dernière cellule sera D1, car Excel n'a pas
effacé de sa mémoire qu'il y avait un format de cellule sur cette cellule. Si A10 en plus d'avoir une valeur il y avait eu un format
de cellule, même en faisant disparaître la valeur en A10, cela n'aurait pas modifié le UsedRange demeurant toujours A10:D10.

B)
Toujours dans une feuille vierge, si tu modifies la couleur de fond d'une cellule ou encore la couleur de la police de caractère, tu
viens de modifier l'« usedrange» retenu par Excel sans qu'il y ait eu une saisie de données.
s
Conclusion :
Tout ceci pour finir par dire, qu'il faut être prudent avec le concept de « UsedRange». Ce n'est pas parce que l'on a vidé une
cellule de son contenu fut-elle la dernière que cela modifie l'étendue couverte par « UsedRange»


Salutations!


"Herve Magaud" a écrit dans le message de news: 4375ed24$0$7355$
Oups , j'ai rien dit, ça marche très bien.

J'avais seulement fait l'essai avec la fonction excel qui ne met pas à jour
le compteur de la dernière cellule.
Contrairement à la propriété UsedRange de VBA qui elle recalcule la dernière
cellule, et redimensionne l'ascenseur.

Encore merci Michdenis, tu es mon héros, gloire à toi et à ta descendance
sur 8 générations.



"Herve Magaud" a écrit dans le message de
news: 4375e585$0$7345$
Merci Michdenis,

" Édition/atteindre/cellules/dernières cellules " et son équivalent VBA
répondent exactement à ma première question.
C'est à dire trouver la dernière ligne/cellule.

Le problème, maintenant, c'est que une fois trouvé cet dernière, j'ai beau
l'effacer, la supprimer, supprimer des lignes et des colonnes au dessus,
"dernière cellule" renvoie toujours sur la même cellule .....vide.





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

Bonjour Philippe,

Je t'invite à tester la proposition que j'ai faite à Herve Magaud.

Cela résout bien plus que l'ascenseur... la commande «
Édition/atteindre/cellules/dernières cellules répond adéquatement après
suppression des données. Son équivalent VBA,
"Feuil1.UsedRange.SpecialCells (xlCellTypeLastCell). Select" fonctionne
correctement
aussi.

Bien que pas testé expressément, il se pourrait bien que l'obésité
maladive de certains classeurs remarqués par les utilisateurs
soit résolue, et ce, sans avoir rien à faire... même pas besoin
d'enregistrer le classeur....!!! Un petit croissant avec ça? ;-)))


Salutations!


"Philippe Noss" a écrit dans le message de news:

Bonjour
Pour le problème d'ascenseur, il se peut qu'il suffise d'enregistrer
le classeur.
Il peut aussi etre necessaire de supprimmer les lignes plutot que de
les effacer.
Est sinon, utiliser le code de MichDenis
Slts
Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html