OVH Cloud OVH Cloud

fin de page

9 réponses
Avatar
pierreg
Bonsoir =E0 tous,
En tapant simultan=E8ment les touches Ctrl et Fin sur mon=20
clavier le curseur se positionne sur une case qui est=20
sens=E9e =EAtre la derni=E8re en bas =E0 droite de la zone=20
utilis=E9e de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications=20
qu'a pu subir la feuille, le curseur s'en va beaucoup=20
plus loin, au milieu de nulle part !
Comment obtenir =E0 tous les coups un positionnement qui=20
soit vraiment en fin de zone =E9crite =3D apr=E9s la toute=20
derni=E8re case contenant quelque chose ?
merci de vos conseils,
pierreg

9 réponses

Avatar
michdenis
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en mémoire les cellules qui ont été utilisées même lorsque l'information
de ces dernières a été effacée. C'est pourquoi la dernière cellule de la plage n'est pas vraiment toujours la dernière

Tu peux utiliser cette macro. Et à partir du menu de la feuille de calcul / outils / Macro / Macro, tu sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes la lettre qui te servira de raccourci pour appeler la macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit dans le message de news:a2d501c48702$ac3e1290$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg
Avatar
pierreg
re re bonsoir Denis,
j'ai copié collé ta macro, elle m'envoie à la même case
que Ctrl+Fin (dans mon fichier c'est H113 alors que la
dernière cellule contenant une info est G67.
désolé, tu te donnes du mal et je trouve moyen de
réclamer, excuse moi.
mais...merci,
cordialement
pierreg

-----Message d'origine-----
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en
mémoire les cellules qui ont été utilisées même lorsque

l'information
de ces dernières a été effacée. C'est pourquoi la
dernière cellule de la plage n'est pas vraiment toujours

la dernière

Tu peux utiliser cette macro. Et à partir du menu de la
feuille de calcul / outils / Macro / Macro, tu

sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes
la lettre qui te servira de raccourci pour appeler la

macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit
dans le message de news:a2d501c48702$ac3e1290

$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg


.



Avatar
michdenis
Bonjour Pierre,

La macro du message précédent doit toujours s'effectuer à partir de la feuille de calcul à cause de la commande Sendkeys.
Elle fonctionne très bien sous Excel 2003.

En voici une autre pour faire le même boulot :

'--------------------------------
Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlByColumns, xlPrevious).Column
r = .Cells.Find("*", , xlFormulas, xlByRows, xlPrevious).Row
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'--------------------------------


Salutations!






"pierreg" a écrit dans le message de news:a33401c4870a$22fc7690$
re re bonsoir Denis,
j'ai copié collé ta macro, elle m'envoie à la même case
que Ctrl+Fin (dans mon fichier c'est H113 alors que la
dernière cellule contenant une info est G67.
désolé, tu te donnes du mal et je trouve moyen de
réclamer, excuse moi.
mais...merci,
cordialement
pierreg

-----Message d'origine-----
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en
mémoire les cellules qui ont été utilisées même lorsque

l'information
de ces dernières a été effacée. C'est pourquoi la
dernière cellule de la plage n'est pas vraiment toujours

la dernière

Tu peux utiliser cette macro. Et à partir du menu de la
feuille de calcul / outils / Macro / Macro, tu

sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes
la lettre qui te servira de raccourci pour appeler la

macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit
dans le message de news:a2d501c48702$ac3e1290

$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg


.



Avatar
pierreg
bonsoir denis,
ça marche pour la deuxième ! (mais en supprimant le "*"
aprés find, remplacé par "")
j'ai effectué les deux macros depuis la feuille, la 1ère
donne toujours idem Ctrl+Fin, la deuxième est ok.
merci beaucoup de ta gentillesse et rapidité!
cordialement,
pierreg
-----Message d'origine-----
Bonjour Pierre,

La macro du message précédent doit toujours s'effectuer
à partir de la feuille de calcul à cause de la commande

Sendkeys.
Elle fonctionne très bien sous Excel 2003.

En voici une autre pour faire le même boulot :

'--------------------------------
Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlByRows,
xlPrevious).Row

If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'--------------------------------


Salutations!






"pierreg" a écrit
dans le message de news:a33401c4870a$22fc7690

$
re re bonsoir Denis,
j'ai copié collé ta macro, elle m'envoie à la même case
que Ctrl+Fin (dans mon fichier c'est H113 alors que la
dernière cellule contenant une info est G67.
désolé, tu te donnes du mal et je trouve moyen de
réclamer, excuse moi.
mais...merci,
cordialement
pierreg

-----Message d'origine-----
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en
mémoire les cellules qui ont été utilisées même lorsque

l'information
de ces dernières a été effacée. C'est pourquoi la
dernière cellule de la plage n'est pas vraiment toujours

la dernière

Tu peux utiliser cette macro. Et à partir du menu de la
feuille de calcul / outils / Macro / Macro, tu

sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes
la lettre qui te servira de raccourci pour appeler la

macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit
dans le message de news:a2d501c48702$ac3e1290

$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg


.




.




Avatar
michdenis
Bonjour Pierre,

Je n'ai pas vraiment compris le pourquoi de la substitution de "*" par "" et qu'elle cellule tu voulais réellement obtenir
par une telle procédure.

Voici 3 procédures avec une légère nuance entre elles quant à la cellule identifiée comme étant la dernière cellule de la
feuille active.

'-------------------------------------
'Pour identifier la dernière cellule de la
'dernière colonne de la feuille active.

Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Column
r = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Row
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------
'Pour identifier la première cellule
'après la dernière cellule de la
'dernière colonne de la feuille active.

Sub DerCellule2()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Column
r = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Row
If r <> 65536 Then
r = r + 1
Else
c = c + 1
r = 1
End If
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------
'En supposant que l'on veuille l'adresse de la
'dernière cellule (dernière ligne et dernière colonne)
'Format un CUBE (RECTANGLE) dans la feuille active

Sub DerCellule1()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns, xlPrevious).Column
r = .Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------


Salutations!





"pierreg" a écrit dans le message de news:a35501c4870e$57633d70$
bonsoir denis,
ça marche pour la deuxième ! (mais en supprimant le "*"
aprés find, remplacé par "")
j'ai effectué les deux macros depuis la feuille, la 1ère
donne toujours idem Ctrl+Fin, la deuxième est ok.
merci beaucoup de ta gentillesse et rapidité!
cordialement,
pierreg
-----Message d'origine-----
Bonjour Pierre,

La macro du message précédent doit toujours s'effectuer
à partir de la feuille de calcul à cause de la commande

Sendkeys.
Elle fonctionne très bien sous Excel 2003.

En voici une autre pour faire le même boulot :

'--------------------------------
Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlByRows,
xlPrevious).Row

If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'--------------------------------


Salutations!






"pierreg" a écrit
dans le message de news:a33401c4870a$22fc7690

$
re re bonsoir Denis,
j'ai copié collé ta macro, elle m'envoie à la même case
que Ctrl+Fin (dans mon fichier c'est H113 alors que la
dernière cellule contenant une info est G67.
désolé, tu te donnes du mal et je trouve moyen de
réclamer, excuse moi.
mais...merci,
cordialement
pierreg

-----Message d'origine-----
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en
mémoire les cellules qui ont été utilisées même lorsque

l'information
de ces dernières a été effacée. C'est pourquoi la
dernière cellule de la plage n'est pas vraiment toujours

la dernière

Tu peux utiliser cette macro. Et à partir du menu de la
feuille de calcul / outils / Macro / Macro, tu

sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes
la lettre qui te servira de raccourci pour appeler la

macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit
dans le message de news:a2d501c48702$ac3e1290

$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg


.




.




Avatar
Ricky
Bonjour *michdenis* (et tous les lecteurs)

| Bonjour Pierre,
|
| La macro du message précédent doit toujours s'effectuer à partir de
| la feuille de calcul à cause de la commande Sendkeys. Elle fonctionne
| très bien sous Excel 2003.
|
| En voici une autre pour faire le même boulot :

Et le plus surprenant c'est que après avoir utilisé la macro les choses rentrent dans l'ordre et la combinaison CTRL+FIN fonctionne alors correctement


--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
michdenis
Bonjour Ricky,


Semble-t-il que tout le monde n'a pas la même chance ! selon la réponse obtenue de Pierre .


Salutations!



"Ricky" a écrit dans le message de news:%
Bonjour *michdenis* (et tous les lecteurs)

| Bonjour Pierre,
|
| La macro du message précédent doit toujours s'effectuer à partir de
| la feuille de calcul à cause de la commande Sendkeys. Elle fonctionne
| très bien sous Excel 2003.
|
| En voici une autre pour faire le même boulot :

Et le plus surprenant c'est que après avoir utilisé la macro les choses rentrent dans l'ordre et la combinaison CTRL+FIN
fonctionne alors correctement


--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net
Avatar
pierreg
bonsoir amis,
non non, Ricky a raison, aprés utilisation de ta macro Ctrl+Fin remarche,
même chez le zozo que je suis !!
Mais dans mon cas il fallait d'abord que je supprime les lignes vides
existant entre la "vraie" dernière case (par ex N150) et celle que le
"mauvais" Ctrl+Fin initial indiquait( par ex N300). Puis faire marcher ta
macro, qui renvoie bien alors à N150). Par la suite Ctrl+Fin ramène bien où
il faut (N150!)
J'ai testé sans supprimer les lignes, rien à faire par contre.
(supprimer par Edition supprimer Ligne entière, ou par l'icône
correspondante)

Je ne sais pas ce que j'avais fait la 1ère fois, mais maintenant avec tes
deux macros je n'ai plus de problème, merci bcp Denis.

"michdenis" a écrit dans le message de
news:
Bonjour Ricky,


Semble-t-il que tout le monde n'a pas la même chance ! selon la réponse
obtenue de Pierre .



Salutations!



"Ricky" a écrit dans le message de
news:%

Bonjour *michdenis* (et tous les lecteurs)

| Bonjour Pierre,
|
| La macro du message précédent doit toujours s'effectuer à partir de
| la feuille de calcul à cause de la commande Sendkeys. Elle fonctionne
| très bien sous Excel 2003.
|
| En voici une autre pour faire le même boulot :

Et le plus surprenant c'est que après avoir utilisé la macro les choses
rentrent dans l'ordre et la combinaison CTRL+FIN

fonctionne alors correctement


--
Ricky [MVP] Visitez les faq....
http://www.faqoe.com http://faqword.free.fr
http://dj.joss.free.fr/faq.htm http://www.excelabo.net




Avatar
pierreg
bonsoir Denis
j'ai substitué "" à "*" parce qu'avec * ça ne marchait pas et que sans * ça
a marché tbien.
La cellule que je voulais obtenir était la dernière cellule contenant
quelque chose (=non vide) de la feuille, et ta macro est super pour ça (sans
le *, chez moi, je serais incapable de t'expliquer pourquoi c'est différent
de chez toi ???)
en tout cas merci pour tout ça,
cordialement
pierreg





"michdenis" a écrit dans le message de
news:%
Bonjour Pierre,

Je n'ai pas vraiment compris le pourquoi de la substitution de "*" par ""
et qu'elle cellule tu voulais réellement obtenir

par une telle procédure.

Voici 3 procédures avec une légère nuance entre elles quant à la cellule
identifiée comme étant la dernière cellule de la

feuille active.

'-------------------------------------
'Pour identifier la dernière cellule de la
'dernière colonne de la feuille active.

Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns,
xlPrevious).Row

If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------
'Pour identifier la première cellule
'après la dernière cellule de la
'dernière colonne de la feuille active.

Sub DerCellule2()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns,
xlPrevious).Row

If r <> 65536 Then
r = r + 1
Else
c = c + 1
r = 1
End If
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------
'En supposant que l'on veuille l'adresse de la
'dernière cellule (dernière ligne et dernière colonne)
'Format un CUBE (RECTANGLE) dans la feuille active

Sub DerCellule1()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlPart, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row
If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'-------------------------------------


Salutations!





"pierreg" a écrit dans le message de
news:a35501c4870e$57633d70$

bonsoir denis,
ça marche pour la deuxième ! (mais en supprimant le "*"
aprés find, remplacé par "")
j'ai effectué les deux macros depuis la feuille, la 1ère
donne toujours idem Ctrl+Fin, la deuxième est ok.
merci beaucoup de ta gentillesse et rapidité!
cordialement,
pierreg
-----Message d'origine-----
Bonjour Pierre,

La macro du message précédent doit toujours s'effectuer
à partir de la feuille de calcul à cause de la commande

Sendkeys.
Elle fonctionne très bien sous Excel 2003.

En voici une autre pour faire le même boulot :

'--------------------------------
Sub DerCellule()
On Error Resume Next
With ActiveSheet
c = .Cells.Find("*", , xlFormulas, xlByColumns,
xlPrevious).Column

r = .Cells.Find("*", , xlFormulas, xlByRows,
xlPrevious).Row

If Err <> 0 Then
Err = 0
.Cells(1, 1).Select
Else
.Cells(r, c).Select
End If
End With
End Sub
'--------------------------------


Salutations!






"pierreg" a écrit
dans le message de news:a33401c4870a$22fc7690

$
re re bonsoir Denis,
j'ai copié collé ta macro, elle m'envoie à la même case
que Ctrl+Fin (dans mon fichier c'est H113 alors que la
dernière cellule contenant une info est G67.
désolé, tu te donnes du mal et je trouve moyen de
réclamer, excuse moi.
mais...merci,
cordialement
pierreg

-----Message d'origine-----
Bonjour Pierre,

C'est une situation bien connue ... excel conserve en
mémoire les cellules qui ont été utilisées même lorsque

l'information
de ces dernières a été effacée. C'est pourquoi la
dernière cellule de la plage n'est pas vraiment toujours

la dernière

Tu peux utiliser cette macro. Et à partir du menu de la
feuille de calcul / outils / Macro / Macro, tu

sélectionnes le nom de
la macro / un clic sur le bouton "Options" et tu tapes
la lettre qui te servira de raccourci pour appeler la

macro comme
Ctrl + m

'--------------------
Sub DernièreCellule()
ActiveSheet.UsedRange
SendKeys "^{End}"
End Sub
'--------------------


Salutations!



"pierreg" a écrit
dans le message de news:a2d501c48702$ac3e1290

$
Bonsoir à tous,
En tapant simultanèment les touches Ctrl et Fin sur mon
clavier le curseur se positionne sur une case qui est
sensée être la dernière en bas à droite de la zone
utilisée de ma feuille Excel.
Mais parfois, sans doute en fonction des modifications
qu'a pu subir la feuille, le curseur s'en va beaucoup
plus loin, au milieu de nulle part !
Comment obtenir à tous les coups un positionnement qui
soit vraiment en fin de zone écrite = aprés la toute
dernière case contenant quelque chose ?
merci de vos conseils,
pierreg


.




.