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

XL 2019 Sélectionner une plage de données variable selon le nombre de ligne

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

Samulo

XLDnaute Nouveau
Bonjour,

Je reçois un fichier chaque jour dans le cadre de mon travail et la base de données utilisée est variable en ligne. J'aimerai une macro qui sélectionne la zone "jaune" dans le fichier soit jusqu'à la dernière ligne non vide en sachant que chaque jour des lignes s'efface ou se rajoute. Cette sélection de données sera ensuite utiliser pour ma fonction INDEX & EQUIV.

Merci de votre aide,

Samuel
 

Pièces jointes

Re

Allez un petit jaune, dés le matin 😉
VB:
Sub test()
c = Cells(1, Columns.Count).End(xlToLeft).Column
l = Cells(Rows.Count, 2).End(xlUp).Row
MsgBox Range(Cells(2, 2), Cells(l, c)).Address 'pour test
Range(Cells(2, 2), Cells(l, c)).Select
End Sub
 
Parfait j'utilise un Select pour ensuite définir un nom de cette sélection pour pouvoir l'intégrer dans une formule Index.

Comment je peux rajouter le fait de définir un nom pour cette sélection ?
 
Re

Samuto
Dans ce cas, le select est inutile
On peut nommer directement
VB:
Sub nommer()
x = Columns.Count: xx = Rows.Count
c = Cells(1, x).End(1).Column: DL = Cells(xx, 2).End(3).Row
Range([B2], Cells(DL, c)).Name = "toto"
End Sub
J'ai repris de la simplication de soan
(les syntaxes étant identiques dans le #17 et le #22 pour identifier "dernière ligne et dernière colonne")
 
J'ai essayé cela ne fonctionne pas.. Cela ne sélectionne pas la bonne plage...
 

Pièces jointes

Re

Le code fonctionne si les colonnes aprés le tableau sont vides.
Ce qui n'était pas le cas dans ton dernier fichier exemple.
Fais le ménage et retestes
VB:
Sub Macro3()
Dim c&, l&, rng As Range
  c = Cells(1, Columns.Count).End(xlToLeft).Column
  l = Cells(Rows.Count, 2).End(xlUp).Row
  Set rng = Range([D2], Cells(l, c))
  rng.Name = "BASE"
  'ci dessous juste pour test
  With rng
  mess = .Address & vbCr
  mess = mess & .Name.Name & vbCr
  End With
  MsgBox mess
End Sub
 
- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…