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

  • Initiateur de la discussion Initiateur de la discussion Potentis
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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 ^^
 
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
VB:
ActiveCell.CurrentRegion.Select
te décris ce que je cherche ?
 
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
725
Réponses
2
Affichages
533
Réponses
7
Affichages
952
  • Question Question
Microsoft 365 Lancer une macro
Réponses
10
Affichages
708
Retour