Au boulot, j'ai Excel 2016 et j'ai une toute petite macro bien pratique, je fais beaucoup d'ajout et de suppression de lignes et/ou colonnes et entre autre ça me permet de facilement régler la zone d'impression et de ne pas gonfler la taille de mes fichiers qui dépassent pour la plupart 50 Mo^^
Chez moi, je suis encore sur la vielle version XL 2003, et je souhaiterais la même macro avec le raccourci clavier Ctrl + d
Pourriez-vous SVP la convertir ci-dessous
VB:
Sub HomeFin()
'Réinitialise a la cellule la +en bas a droite
ActiveSheet.UsedRange.Select
'Soit aller en A2
' ActiveSheet.Cells(2, 1).Select
'Soit aller Ctrl+Fin
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
bonjour
pas tres claire ta demande en fait au regard du code
pour moi ceci suffit pour aller a la dernière ligne ActiveSheet.UsedRange.SpecialCells(xlLastCell).select
Laurent, je mets ce que tu propose à la place de
ActiveCell.SpecialCells(xlLastCell).Select ?
et je laisse
ActiveSheet.UsedRange.Select ?
Patrick, pour "ActiveCell.SpecialCells(xlLastCell).Select" c'est utile pour moi d'aller à la dernière cellule en bas a droite car j'ajoute et supprime pas mal de ligne et colonne, si je vais seulement à la dernière ligne, je ne pourrais pas cadrer ma zone d'impression et surtout ajouter un nombre a droite de la cellule en bas a droite, cette macro va directement dans cette cellule ^^
utile non absolument pas
d'ailleurs le select tout court ne l'ai pas d'ailleurs ,même pour une définition d'area d'impression
comme c'est vraiment pas clair ta demande je ne peux t'en dire plus
car on sait toujours ce que tu veux en faire
ceci:
VB:
Sub HomeFin()
'Réinitialise a la cellule la +en bas a droite
ActiveSheet.UsedRange.Select
'Soit aller en A2
' ActiveSheet.Cells(2, 1).Select
'Soit aller Ctrl+Fin
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
n'a absolument aucun sens
je vois pas l’intérêt de sélectionner le usedrange pour sélectionner ensuite la dernière cells du usedrange
autant sélectionner celle ci tout de suite si tant est que cette sélection soit vraiment nécessaire ce dont je doute
toutes mes excuses ^^ c'est sûr que c'est pas facile d'expliquer ce qu'on a et ce qu'on demande quand on n'est pas super précis et pas adepte au VBA, je vais essayer de mieux m'exprimer
(dsl si c'est un peu long)
sur un de mes fichiers ma cellule la + en bas a droite est R70
j'ai ajouté du texte en R75 et U72
si je fais Ctrl + Fin ça me mets en U75
maintenant je supprime les colonnes S T et U puis
je supprime les lignes 71 à 75
je refais Ctrl + Fin ça me remets en U75 (parce XL se souvient que c'était ma dernière cellule en bas a droite (xlLastCell)), je suppose que ActiveSheet.UsedRange.Select ça vide cette mémoire
maintenant (au boulot en XL 2016) je fais Ctrl + d puis Ctrl + Fin ça me mets correctement en R70 (la vrai dernière cellule en bas à droite) c'est a cet endroit au boulot que j'écris un chiffre pour me souvenir de quelque chose
tu vois les ' en débuts de ligne, ça me permet soit d'aller en A2 ou en bas a droite selon mes besoins journaliers ou mensuels
ce fonctionnement est vraiment bien pratique pour moi et il marche correctement au boulot
ce que je souhaite c'est la même chose chez moi mais en XL 2003, mais j'y connais vraiment pas grand chose en VBA ^^
Merci pour ton aide et est ce que laurent950 propose
usedrange te donne le range utilisé a chaque changement il te faut l'interroger si tu veux la donnée a jour
y compris avec le currentregion donc il faut se méfier (laurent n'apprendra jamais!!) car un trou dans le usedrange en terme de ligne ou colonne ou les deux peut donner un faux résultat avec currentregion
Bonjour,
La dernière cellule la plus a droite d'une plage si j'ai compris : (C'est un exemple ! )
VB:
Sub test()
Set Rgn = Range(ActiveCell.CurrentRegion.Address)
'Range(Rgn.Address, Range(Rgn.Address).End(xlDown)).Select
Range(Rgn.Address)(Range(Rgn.Address).Cells.Count).Select
End Sub
Ps : Personnellement j'éviterais : CurrentRegion et SpecialCells(xlLastCell) de plus select cela n'a pas vraiment d’intérêt (l'utilisation de select), mais comme vous l'avez utilisé je suis rester dans votre logique est je vous donc proposer CurrentRegion !