Attribuer une variable Range à la cellule active

Résolu
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   -  
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour à tous !
Je ne trouve pas comment attribuer à la cellule active d'une feuille Excel un objet Range: le code
Dim NJ as Range
Set NJ = Range(ActiveCell)

ne fonctionne pas ... Où est mon erreur?


Windows / Chrome 123.0.0.0

1 réponse

Bruno83200_6929 Messages postés 632 Date d'inscription   Statut Membre Dernière intervention   142
 

Bonjour,


Il semble que votre erreur réside dans la façon dont vous utilisez la fonction Range(). La fonction Range() nécessite des paramètres spécifiques pour définir une plage, mais vous ne lui avez pas fourni ces paramètres correctement.

Pour attribuer à la cellule active un objet Range, vous devez spécifier explicitement l'adresse de la cellule active. Voici comment vous pouvez le faire

Dim NJ As Range
Set NJ = ActiveCell


Avec ce code, vous déclarez un objet Range appelé NJ et lui attribuez la référence de la cellule active.

Si vous souhaitez plutôt définir une plage autour de la cellule active, par exemple une plage de 1x1 cellule, vous pouvez le faire comme suit :


Dim NJ As Range
Set NJ = ActiveCell.Resize(1, 1)


Cela définit une plage (Range) autour de la cellule active avec une dimension de 1 ligne et 1 colonne.

Si vous souhaitez une plage plus grande autour de la cellule active, vous pouvez ajuster les paramètres de Resize() en conséquence. Par exemple, pour une plage de 3x3 cellules autour de la cellule active :

Dim NJ As Range
Set NJ = ActiveCell.Resize(3, 3)


Assurez-vous de choisir la méthode qui correspond le mieux à ce que vous essayez de réaliser dans votre script VBA Excel.

En espérant vous avoir aidé.


 

1
mikel831 Messages postés 221 Date d'inscription   Statut Membre Dernière intervention   18
 

Merci pour ta réponse!
Effectivement, ActiveCell est déjà un objet Range ...
Merci pour ton aide claire et précise.
Cordialement, Mikel

1