Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Définir une variable... variable

  • Initiateur de la discussion Initiateur de la discussion Vinvol
  • 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 !

V

Vinvol

Guest
Bonjour,

J'ai cherché à créer une variable dont la plage correspond à une nouvelle colonne dans un tableau, de la première ligne à la dernière ligne non vide de ce tableau.
Pas top la formulation... en gros j'ai un tableau qui va de A1 à C? et je veux définir une variable dont la plage de donnée sera D1😀?

Pour définir la dernière ligne non vide du tableau, j'ai trouvé ce code :

Set lastln = Range("A65536").End(xlUp).Row

mais je n'arrive pas à le faire marcher. Quand je lance ma macro, un message d'erreur "Object Required" apparaît et le ".Row" du code est surligné.

J'ai certainement raté quelque chose et, mes connaissances en VBA étant encore limitées, je ne vois pas quoi.

Résultat, je ne sais pas non plus si ma variable est correcte :

Set ColonneD = Range("D1😀" & lastln)

Si quelqu'un veut bien prendre le temps de m'expliquer ce qui cloche...

Merci,
Vincent
 

Pièces jointes

Re : Définir une variable... variable

Bonjour Vincent, bonjour le forum,

lastln n'étant pas une variable objet le Set pour la définir est en trop...
Ton code modifié :
Code:
Sub exemple()
Dim lastln As Integer
Dim colonneD As Range

lastn = Range("A65536").End(xlUp).Row
Set colonneD = Range("D1:D" & lastln)
colonneD.FormulaR1C1 = "=RC[-3]"
End Sub
 
Re : Définir une variable... variable

Merci Robert pour cette réponse rapide et précise !

Tout ça à cause de 3 lettres...

Par contre, ça bug sur la ligne suivante : Method 'Range' of object '_Global' failed

J'ai tenté de supprimer le "Set" mais cette fois ça n'a pas suffit (évidemment! j'ai envie de dire).

Une suite à ta correction ?

Merci,
Vincent
 
Re : Définir une variable... variable

Bonjour.
C'est pour éviter ce message que je mets toujours un point devant Range et, forcément si je ne suis pas dans un bloc With, quelque chose devant ce point. Si je ne ne peut vraiment pas faire autrement, je mets "Application" pour que ce soit exprès lourd comme écriture pour rappeler que c'est l'utilisation casse gueule de la méthode Range de cet objet là.
J'avais un jour un classeur que je tenais pour très au point, où j'ai découvert un bug que les gens ne me signalaient pas depuis des mois, parce qu'un Range sans rien devant dans une Workbook_BeforeClose essayait d'accéder à la quelconque feuille active du dernier classeur actif quand on quittait Excel au lieu de le fermer depuis lui même alors actif.
Depuis je ne le laisse jamais plus décider à ma place de quelle feuille de quel classeur il doit prendre un Range.
À +
 
Dernière édition:
Re : Définir une variable... variable

Re bonjour,

Vraiment bizarre cette histoire.
J'ai réussi à éliminer le message d'erreur (effectivement en rajoutant le nom de mafeuille.range - merci Dranreb !), mais le résultat n'est toujours pas concluant puisque seule la cellule D1 se remplit, et non pas toutes les lignes du tableau de la colonne D.

Je vais continuer mes tests, c'est le meilleur moyen pour comprendre comment tout ça fonctionne.

Merci encore à vous deux pour votre aide précieuse.
Vincent
 
Re : Définir une variable... variable

Bonjour Bernard, Vincent, bonjour le forum,

Si tu lances le code à partir d'un autre onglet (Feuil2 par exemple) il faut alors écrire :
Code:
Sub exemple()
Dim lastln As Integer
Dim colonneD As Range

With Sheets("Feuil1")
     lastn = .Range("A65536").End(xlUp).Row
     Set colonneD = .Range("D1:D" & lastln)
     colonneD.FormulaR1C1 = "=RC[-3]"
End With
End Sub
 
Re : Définir une variable... variable

Je le lançais de la feuille 1 pourtant...
En tout cas, avec ce nouveau code, ça marche !
J'ai plus qu'à l'adapter.

Merci beaucoup Robert!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
11
Affichages
356
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…