supprimer des lignes vides

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

murainesouspatate

XLDnaute Occasionnel
Bonjour à tous les copains,

Me revoici car j'ai un petit problème sur une ligne de commande qui ne passe pas et étant novice dans le domaine , je n'arrive pas à comprendre pourquoi. 😕

Cette macro devrais me permettre de supprimer des lignes vides d'un fichier contenant environ 33500 lignes.


ci joints la macro :

Dim Compteur As Long, Compteur2 As Long, Compteur3 As Integer
Dim Tab_Donnees As Variant, Tab_Donnees2 As Variant
Dim Der_Cel As Range

Set Der_Cel = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell)
ReDim Tab_Donnees(1 To Der_Cel.Row, 1 To Der_Cel.Column)
Tab_Donnees2 = ActiveSheet.Range("A1:" & Der_Cel.Address).Value
Compteur2 = 0

For Compteur = 1 To Der_Cel.Row
If Not Application.CountA(ActiveSheet.Rows(Compteur)) = 0 Then
Compteur2 = Compteur2 + 1
For Compteur3 = 1 To Der_Cel.Column
Tab_Donnees(Compteur2, Compteur3) = Tab_Donnees2(Compteur, Compteur3)
Next Compteur3
End If
Next Compteur
ActiveSheet.Range("A1:" & Der_Cel.Address).Value = Tab_Donnees (c'est cette ligne qui bogue)

End Sub


Si vous pouviez m'expliquer, merci de votre part pour ce petit coup de pouce.


A très bientôt..... pour de nouvelles aventures ! 😎
 
Dernière édition:
Re : supprimer des lignes vides

Re,

Sur mes ordi je n'ai pas 7-zip, et je ne veux pas le télécharger.

Si comme le dit mapomme le problème vient des cellules fusionnées, essayez ceci :

Code:
Sub SupprimeLignesVides()
Dim col As Integer
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With ActiveSheet.UsedRange
  .UnMerge 'défusionne
  col = .Columns.Count + 1
  .Columns(col).FormulaR1C1 = "=COUNTA(RC1:RC[-1])=0"
  .Columns(col) = .Columns(col).Value 'ne garde que les valeurs
  .Resize(, col).Sort .Columns(col), xlAscending, Header:=xlNo
  .Columns(col).ClearContents
End With
Application.Calculation = xlCalculationAutomatic
End Sub

Nota
: le tri conserve les formats mais pas les bordures.

A+
 
Re : supprimer des lignes vides

(re)Bonjour,

Un essai dans les fichiers joints. J'ai eu quelques pb. (selon les méthodes) avec des cellules fusionnées et/ou des cellules contenant des valeurs commençant par "=" et dont l'évaluation était erronée. La méthode utilisée est celle de Job (mais pas la dernière)

Deux procédures: une qui copie les données sur la feuille "Res" sans cellules fusionnées et en format texte, l'autre qui ôte les lignes vides. Environ 5 s pour la copie et 20s pour la suppression des lignes vides (fichier complet .7z). Environ 1 s pour la copie et 0,7s pour la suppression des lignes vides (fichier réduit .zip)

Deux fichiers:
  • le .7z avec les 24000 lignes de données sur cjoint ici
  • le .zip avec 5000 lignes de données (pour job 🙂 ).

nb: j'ai fait fi des formats puisque les données sont destinées à un export vers Access.
nb: il restera à mettre en forme les colonnes selon le type de leur contenu.
 

Pièces jointes

Dernière édition:
Re : supprimer des lignes vides

Re,

Merci mapomme de ton attention.

Puisque notre ami veut conserver les formats, j'ai testé avec :

Code:
Sub Copier_Sheet1_Vers_Res()
Sheets("Sheet1").Cells.Copy Sheets("Res").[A1]
End Sub
Et dans ma macro j'ai mis .UnMerge

Tout semble bien fonctionner, les formats sont conservés.

Je ne vois pas pourquoi murainesouspatate a des problèmes avec cette macro.

Fichier joint.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
880
Retour