Sélection plage de cellules non vides et non calculées

THERY

XLDnaute Nouveau
Bonjour,

J'ai une feuille XL dans laquelle j'insère des données externes (colonnes B, D et L).
Les colonnes A, C et E à K se calculent automatiquement jusqu'en ligne 180 en fonction des données insérées en B, D et L.
J'ai mes en têtes de colonne dans les lignes 1 et 2.

Je dois sélectionner les données des cellules A3 jusque LXXX, sachant que LXXX représente la dernière cellule non renseignée et non calculée de la feuille XL.
Je copie - colle les données sélectionnées dans un classeur que j'enregistre au format csv. Ce dernier point fonctionne.

J'ai utilisé le code suivant :
Sheets("Feuil1").Select
Range("L3:A3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Mais la macro sélectionne les données jusqu'en ligne 180 (dernière ligne calculée en colonne A) alors que les données ne vont que jusqu'en ligne 140 (le plus souvent).
J'ai mis un exemple (modifié) du classeur et de la feuil1 pour la compréhension. Il ne contient pas la macro sinon impossible à mettre à disposition.
Si qqn peut m'aider ! Merci beaucoup,

CT.
 

Pièces jointes

  • Expéditions.xls
    90 KB · Affichages: 32

Efgé

XLDnaute Barbatruc
Re : Sélection plage de cellules non vides et non calculées

Bonjour THERY
Il faut utiliser la colonne B (2) qui ne comporte pas de formules en trop:
VB:
Sub test()
With Sheets("Feuil1")
    .Range("A3:L" & .Cells(.Rows.Count, 2).End(xlUp).Row).Select
End With
End Sub

Cordialement
 

THERY

XLDnaute Nouveau
Re : Sélection plage de cellules non vides et non calculées

Bonjour Efgé,

Effectivement cela fonctionne mais il faut corriger le code (il y a des points en trop ):
Sub test()
With Sheets("Feuil1")
Range("A3:L" & Cells(Rows.Count, 2).End(xlUp).Row).Select
End With
End Sub

Merci beaucoup,

CT.
 

Efgé

XLDnaute Barbatruc
Re : Sélection plage de cellules non vides et non calculées

Re
:D Non, non.... points de points en trop ;)
Si tu utilise With, tout ce qui commence par un point y est rattaché.
Avec ta formulation, donc sans les points, tu ne fait qu'utiliser le range de la feuille active, pas la feuille déclarée dans le whith.
par exemple le code si on enlève le with:
Sheets("Feuil1").Range("A3:L" & Sheets("Feuil1").Cells(Sheets("Feuil1").Rows.Count, 2).End(xlUp).Row).Select


Donc si tu utilise With tu enlève les Sheets("Feuil1"). ce qui donne
With Sheets("Feuil1")
.Range("A3:L" & .Cells(.Rows.Count, 2).End(xlUp).Row).Select
End With
Avec tous les points
Voila, voila....

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 222
Messages
2 086 394
Membres
103 200
dernier inscrit
pascalgip