Bonjour,
Je souhaite récupérer les cellules de la sélection ou à défaut la cellule active d'une autre feuille que la feuille active.
A force de fouiller sur le web, j'ai compris que "Selection" et "ActiveCell" s'applique à la feuille active et qu'il semble que ce ne soit pas trivial. En désespoir de cause, j'ai écrit cette fonction (testée avec VBA Excel 2010).
Avant de la mettre en production, n'existe-t-il réellement rien de plus simple pour faire ce boulot ? C'est tellement incroyable que cela n'existe pas en natif.
Par avance, je vous remercie de vos réponses.
Et, si elles sont toutes négatives, j'espère que ces quelques lignes de VBA seront utiles à quelqu'un.
A bientôt
GM
Je souhaite récupérer les cellules de la sélection ou à défaut la cellule active d'une autre feuille que la feuille active.
A force de fouiller sur le web, j'ai compris que "Selection" et "ActiveCell" s'applique à la feuille active et qu'il semble que ce ne soit pas trivial. En désespoir de cause, j'ai écrit cette fonction (testée avec VBA Excel 2010).
VB:
'Retourne les cellules sélectionnées de la feuille passée en paramètre ou la cellule "active" si la sélection n'est pas un range
Function CellulesSelectionnees(Feuille As Worksheet) As Range
Dim FeuilleCourante As Worksheet
Dim EtatMajAffichage As Boolean
'Conservation de l'état courant
Set FeuilleCourante = ActiveSheet
EtatMajAffichage = Application.ScreenUpdating
'Récupération de la cellule
Application.ScreenUpdating = False
Feuille.Activate
'On ne retourne la sélection que si c'est un range
If TypeName(Selection) = "Range" Then
Set CellulesSelectionnees = Selection
Else
Set CellulesSelectionnees = ActiveCell 'La cellule active est toujours un range
End If
'Restitution de l'état courant
FeuilleCourante.Activate
Application.ScreenUpdating = EtatMajAffichage
End Function
Avant de la mettre en production, n'existe-t-il réellement rien de plus simple pour faire ce boulot ? C'est tellement incroyable que cela n'existe pas en natif.
Par avance, je vous remercie de vos réponses.
Et, si elles sont toutes négatives, j'espère que ces quelques lignes de VBA seront utiles à quelqu'un.
A bientôt
GM