Autres [XL 2003] Adapter une macro XL 2016 en XL 2003

Potentis

XLDnaute Occasionnel
Bonjour le forum :)

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

Merci d'avance
 

Potentis

XLDnaute Occasionnel
Bonjour Laurent, Patrick,

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 ^^
 

patricktoulon

XLDnaute Barbatruc
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
 

Potentis

XLDnaute Occasionnel
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
VB:
ActiveCell.CurrentRegion.Select
te décris ce que je cherche ?
 

patricktoulon

XLDnaute Barbatruc
oulah bizarre ton truc là

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
 

laurent950

XLDnaute Barbatruc
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 !
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 634
Messages
2 111 445
Membres
111 138
dernier inscrit
Gsx31