Supprimer lignes vides
Bonjour
1) il serait bien de rappeler ton fil précédent
https://forum.excel-pratique.com/viewtopic.php?f=2&t=115152
2) le code que t'a donné dhany (que je salue), supprime les lignes
Alors comment peux-tu avoir des lignes vides !?
Salut,
En effet, c'était pas bête comme idée !
Alors :
- première code, sa insère des lignes lorsque H et H+1 <>
Sub i1() 'Insérer lignes si matière <>
Dim c As Long
Dim LastRow As Long
LastRow = Cells(Rows.Count, "H").End(xlUp).Row
For c = LastRow To 12 Step -1
If Range("H" & c).Value <> Range("H" & c).Offset(-1, 0).Value Then
Range("H" & c).EntireRow.Insert shift:=xlDown
End If
Next
End Sub- second code, sa supprime et additionne les doublons
Sub i2()
Dim dlig&, lig&: Application.ScreenUpdating = 0
dlig = Cells(Rows.Count, 4).End(xlUp).Row
For lig = dlig To 12 Step -1
With Cells(lig, 4)
If .Value <> "" And .Value = .Offset(-1) Then
.Offset(-1, 1) = .Offset(-1, 1) + .Offset(, 1)
Rows(lig).Delete
End If
End With
Next lig
End SubÉtrangement, sa marche bien si je fait un bouton pour appeler le premier code, et un autre bouton pour le second.
Sauf que je fais sa avec un seul bouton, en faisant :
Public Sub CommandButton1_Click()
Call i1
Call i2
End SubEt on trouve le résultat avec des lignes vides en haut..
Cordialement
Bonjour DRB_Fred
Comment espères-tu que l'on puisse t'aider si tu ne donnes pas tout l'énoncé du problème
De plus comme il est indiqué dans la charte du forum, il faut joindre un fichier à ta demande comme ça on peut éplucher le code et voir ce qui se passe.
A+
En effet..
Voici mes fichiers..
Ouvrir "Classeur1.xls", et cliquez sur "IMPORT" dans la feuille "DEBIT M." puis sélectionner le fichier "LISTING PANNEAUX - Copie.xlsx".
Cordialement
Re,
1) Si tu travailles avec Excel 2010 ou supérieur pense à créer des fichiers au format ".xlsm"
Tu travaillera sur le même nombre de ligne
2) Même si ta méthode me parait très "space", voici le fichier corrigé
Lors de l'insertion de ligne, il faut tester non seulement sir la valeur de Lig <> Lig-1
mais également si la valeur de Lig et Lig-1 ne sont pas vierge tout simplement
If .Range("H" & c).Value <> "" And .Range("H" & c).Offset(-1, 0).Value <> "" Then
If .Range("H" & c).Value <> .Range("H" & c).Offset(-1, 0).Value ThenJ'ai quelque peu optimisé le code également
A+
Salut à toi,
Merci pour ton aide, ça marche très bien !
