Discussion:
supprimer lignes vides
Add Reply
AlainL
2017-02-07 15:35:35 UTC
Réponse
Permalink
Raw Message
Bonjour,

( Excel 2017 et LO sur Win10, tout est à jour).

Un fichier comporte environ 800 lignes consécutives utilisées et ......
je ne sais pas trop combien de lignes vides en dessous. Comment
sélectionner et virer toutes ces lignes enregistrées pour rien, sans
avoir besoin de faire défiler le fichier jusqu'à la fin ?
Merci
(si la procédure peut fonctionner sur LO également c'est encore mieux !)

alainL
MichD
2017-02-07 15:46:37 UTC
Réponse
Permalink
Raw Message
Bonjour,

Pour faire le ménage pour toutes les feuilles du classeur,
exécute une fois cette macro.

'------------------------------------------------------------------
Sub test()
Dim Sh As Worksheet, DerLig As Long, DerCol As Integer
Dim ModeCalcul As String

Application.ScreenUpdating = False
ModeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
On Error Resume Next
For Each Sh In ThisWorkbook.Worksheets
With Sh
If Not IsEmpty(.UsedRange) Then
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row

DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
.Range(.Cells(1, DerCol + 1), .Cells(.Rows.Count, .Columns.Count)).Clear
.Range(.Cells(1, DerCol + 1), .Cells(.Rows.Count, .Columns.Count)).Delete
.Range(.Cells(DerLig + 1, 1), .Cells(.Rows.Count, .Columns.Count)).Clear
.Range(.Cells(DerLig + 1, 1), .Cells(.Rows.Count, .Columns.Count)).Delete
End If
End With
If Err <> 0 Then Err = 0
Next
Application.Calculation = ModeCalcul
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'------------------------------------------------------------------

MichD
JièL
2017-02-07 17:58:18 UTC
Réponse
Permalink
Raw Message
Message perso à Jacquouille : y'en a qui sont en retard, mais d'autres
en avances de version, t'a vu ça ?! ;-)
...Excel 2017...
Déjà ?
Comment sélectionner et virer toutes ces lignes enregistrées pour rien
(si la procédure peut fonctionner sur LO également c'est encore mieux !)
hum... le VBA ne faisant pas parti de LO ni OOo je ne vois pas comment
ça pourrait fonctionner pour ces derniers.

Manuellement : se mettre sur une cellule contenant du texte (sous
entendu y'en à aussi dans toutes celles qui sont en dessous).
Appuyer une fois sur la touche Fin (indicateur dans la ligne d'état)
appuyer une fois sur la flèche vers le bas (arrivé à la fin des données)
Appuyer encore une fois sur la flèche vers le bas pour se trouver sur
une ligne vide
Ctrl+Espace (sélection de la ligne)
Appuyer encore une fois sur la touche Fin
Maintenir Majuscule (shift) et flèche vers le bas
Ctrl+- (le moins sur le pavé numérique)
enregistrer

Je n'ai pas testé avec OOo ni LO mais de mémoire ça fonctionne de la
même façon

PS : c'est plus long à lire (et encore plus à écrire) qu'a faire
--
JièL limité à 2016
Loading...