Supprimer des lignes pas si simple...

bloublou

XLDnaute Occasionnel
Bonjour à tous, Bonjour le forum,

Je suis en train de monter une requête avec MS QUERY (merci mromain:)) et quand je fusionne plusieurs fichiers en même temps
Excel me prend toutes les lignes jusqu'à la derniere cellule qu'il reconnait (exemple : AX 27589) alors que j'ai seulement 9 lignes dans mon Tableau Excel...

J'ai même nommé la plage que je désire mais il me copie colle quand meme 27 000 lignes alors qu'il y en a que 9 de remplies

Je voudrais soit qu'il me reconnaisse que les 9 lignes soit que je supprime l'intervalle de lignes vides :rolleyes:

J'ai bien regardé sur différents forums mais je ne trouve pas ma solution :confused:

Avez vous une idée ? Je joints un petit fichier

Merci de votre aide,

BlouBlou
 

Pièces jointes

  • supprlignes.xlsx
    966.6 KB · Affichages: 84

PMO2

XLDnaute Accro
Re : Supprimer des lignes pas si simple...

Bonjour,

Essayez le code suivant
Code:
Sub PlageDonnees()
Dim S As Worksheet
Dim R As Range
Dim LastRow&
Dim LastCol&
'--- Détermine la plage de données ---
Set S = ActiveSheet
Set R = S.Cells(S.Rows.Count, S.Columns.Count)
On Error Resume Next
LastRow& = S.Cells.Find(What:="?", After:=R, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol& = S.Cells.Find(What:="?", After:=R, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
If Err <> 0 Then Exit Sub
On Error GoTo 0
Set R = S.Range(S.Cells(1, 1), S.Cells(LastRow&, LastCol&))
R.Copy
'--- Copie la plage de données dans une nouvelle feuille ---
Set S = Sheets.Add
S.Paste
Application.CutCopyMode = False
End Sub
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Supprimer des lignes pas si simple...

Bonjour à tous,

en faisant un peu de nettoyage
ce n'était pas normal qu'un classeur qui ne contient pratiquement rien fasse plus de 900k

voir fichier joint


à+
Philippe
 

Pièces jointes

  • 111.xlsx
    9.8 KB · Affichages: 36
  • 111.xlsx
    9.8 KB · Affichages: 42
  • 111.xlsx
    9.8 KB · Affichages: 45

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Supprimer des lignes pas si simple...

re,
Apparemment non.
Pour contourner, il suffit de détruire la feuille et renommer la nouvelle feuille.

Bonjour phlaurent55,

Comment as tu fait pour faire ce nettoyage ?

Merci

BlouBlou
j'ai tout simplement copier-coller les données dans une nouvelle feuille et supprimé la première

à+
Philippe
 

Jacou

XLDnaute Impliqué
Re : Supprimer des lignes pas si simple...

Bonsoir,
autre solution pour nettoyer :
faire Ctrl + fin puis Maj+Ctrl+ début , Maj + flèche bas jusqu'à la dernière ligne que l'on veut conserver et enfin Supp.
Il suffit ensuite d'enregistrer et de fermer le fichier.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Supprimer des lignes pas si simple...

Re
Bonsoir,
autre solution pour nettoyer :
faire Ctrl + fin puis Maj+Ctrl+ début , Maj + flèche bas jusqu'à la dernière ligne que l'on veut conserver et enfin Supp.
Il suffit ensuite d'enregistrer et de fermer le fichier.

c'est ce que j'avais tenté mais bizarrement, je retrouvais toujours AX 27589 comme étant la dernière ligne
...... peut-être à cause d'un caractère spécial dans une cellule ou une très petite image dans cette ligne

à+
Philippe
 

Jacou

XLDnaute Impliqué
Re : Supprimer des lignes pas si simple...

Autant pour moi, à la fin ce n'est pas Suppr qu'il faut faire, mais click droit sur la sélection et supprimer (ligne entière).
mais surtout il faut enregistrer et FERMER le fichier. Ce n'est qu'à ce moment là qu'à la réouverture on trouve la dernière cellule en AX17 (si on a gardé les 17 premières lignes). Sinon tant que l'on n'a pas fermé, on retrouve toujours AX27589 comme dernière cellule.
Bonne nuit
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes pas si simple...

Bonjour à tous

Ma contribution
Code:
Sub FaisLeVideEnMoiExcel()
Dim TheEnd&
TheEnd = Rows.Count
Rows(ActiveCell.Row & ":" & TheEnd).Delete
End Sub
Sélection de A9 puis lancement de la macro ci-dessus

Mes questions
Pourquoi cette AX27589 ?
D’où vient-il? Comment l'expliquer ?

NB: Jacou
Sélection de la ligne 9
CTRL+SHIFT+FLECHE BAS
Clic-droit sur entêtes Lignes -> Supprimer
suffit, non ?

EDITION: La version sans fioritures
Code:
Sub FaisLeVideEnMoiExcelbis()
Rows(ActiveCell.Row & ":" & Rows.Count).Delete
End Sub
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Supprimer des lignes pas si simple...

Bonjour à tous
Effectivement la simple suppression des lignes ne suffit pas.
VB:
Sub Test()
With ActiveSheet
    .Rows(.Cells(.Rows.Count, 1).End(3)(2).Row & ":" & .Rows.Count).Delete
    .UsedRange
End With
End Sub
Force Excel a recalculer sa plage(voir la barre de défilement verticale Avant / Après le code).

Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes pas si simple...

Bonjour à tous


Efgé
Bah cela marchait pourtant (test OK sur le fichier exemple)
J'avais testé avec ceci pour m'en assurer avant et après suppression ligne
Code:
Sub t()
MsgBox ActiveSheet.UsedRange.Address
End Sub
Sub FaisLeVideEnMoiExcel()
Rows(ActiveCell.Row & ":" & Rows.Count).Delete
End Sub
 

Efgé

XLDnaute Barbatruc
Re : Supprimer des lignes pas si simple...

Re
Salut Staple, Cette fois ci j'ai l'explication :D :
En faisant le test 1 en premier on trouve bien la "mauvaise plage", normal.
Puis tu supprimes les lignes (tu noteras qu'a ce moment, la barre de défilement verticale n'as pas évoluée).
Ensuite tu refais le Test 1, là en utilisant UsedRange, tu force Excel a recalculer sa plage, la nouvelle plage est bien celle attendue, et c'est après la passage du second test que la barre de défilement retrouve une grandeur proportionnelle au nombre de ligne.
Donc la simple suppression ne résout pas le problème de plage, il faut bien forcer le recalcule de celle ci.
Cordialement
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 186
dernier inscrit
Eliyass