supprimer lignes vides

Le
AlainL
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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #26425508
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
Le #26425524
Message perso à Jacquouille : y'en a qui sont en retard, mais d'autres
en avances de version, t'a vu ça ?! ;-)
Le 07/02/2017 à 16:35, AlainL a écrit :
...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
Publicité
Poster une réponse
Anonyme