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

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

  • PDP.xlsx
    10.3 KB · Affichages: 15

Staple1600

XLDnaute Barbatruc
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
 

soan

XLDnaute Barbatruc
Inactif
@Samulo

ton fichier en retour.

VB:
Sub Macro1()
  Dim a&, b%
  a = Cells(Rows.Count, 1).End(3).Row - 1
  b = Cells(1, Columns.Count).End(1).Column - 1
  [B2].Resize(a, b).Select
End Sub

soan
 

Pièces jointes

  • PDP.xlsm
    17.5 KB · Affichages: 4

Phil69970

XLDnaute Barbatruc
@Samulo

Si tu veux le mettre dans un module il faut dire à excel de quoi tu parles c'est à dire tu dois lui indiquer la feuille que tu veux....

VB:
Sub Macro1()

With Worksheets("MODIF PDP")
    .Range("B2", .UsedRange.Cells(.UsedRange.Cells.Count)).Select
End With

End Sub

@Phil69970
 

Samulo

XLDnaute Nouveau
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 ?
 

Staple1600

XLDnaute Barbatruc
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")
 

Samulo

XLDnaute Nouveau
J'ai essayé cela ne fonctionne pas.. Cela ne sélectionne pas la bonne plage...
 

Pièces jointes

  • PDP (2).xlsm
    19 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

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