Suppression des lignes vides
Résolu
jeandchanel
Messages postés
136
Statut
Membre
-
jeandchanel Messages postés 136 Statut Membre -
jeandchanel Messages postés 136 Statut Membre -
Bonjour,
j'ai un soucis avec le code ci-dessous. En fait ce code est sensé supprimer les lignes entières vides dans une base de données mais elle ne le fait pas. Quelqu'un pourrait il m'expliquer pourquoi ? merci d'avance.
Ci-joint le fichier Excel contenant la base de données en question (onglet Feuil2)
https://www.cjoint.com/c/GAfn7Hcl3SL
j'ai un soucis avec le code ci-dessous. En fait ce code est sensé supprimer les lignes entières vides dans une base de données mais elle ne le fait pas. Quelqu'un pourrait il m'expliquer pourquoi ? merci d'avance.
Sub supprimeLignesVides()
'variables
Dim O As Worksheet, I As Integer, TV As Variant, J As Integer
Dim TL() As Variant
'valeurs
Set O = Worksheets("Feuil2")
TV = O.Range("A1").CurrentRegion
'boucle for
For I = 1 To UBound(TV, 1) - 1
If TV(I + 1, 1) <> TV(I, 1) Then
ReDim Preserve TL(J)
TL(J) = I + 1
J = J + 1
End If
Next I
For J = UBound(TL) To LBound(TL) Step -1
O.Rows(TL(J)).Delete shift:=xlShiftUp
Next J
End Sub
Ci-joint le fichier Excel contenant la base de données en question (onglet Feuil2)
https://www.cjoint.com/c/GAfn7Hcl3SL
A voir également:
- Suppression des lignes vides
- Forcer suppression fichier - Guide
- Partager des photos en ligne - Guide
- Suppression compte gmail - Guide
- Comment supprimer les pages vides sur word - Guide
- Afficher des lignes masquées excel ✓ - Forum Excel
5 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
Regarde la ligne 11: il me semble que ce code élimine les doublons.
Si tu veux supprimer les lignes vides, modifie la ligne 11 pour tester que la ligne I est entièrement vide, et retire le +1 dans la ligne 13.
Si tu veux supprimer les lignes vides, modifie la ligne 11 pour tester que la ligne I est entièrement vide, et retire le +1 dans la ligne 13.
Bonjour a vous deux,
jeandchanel
vous ecrivez: "supprimer lignes vides" et vous ne testez que la colonne A (TV(I,1)). Alors cellules A ou toute la ligne vide ????
jeandchanel
vous ecrivez: "supprimer lignes vides" et vous ne testez que la colonne A (TV(I,1)). Alors cellules A ou toute la ligne vide ????
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
CurrentRegion va s’arrêter à la première ligne vide, sois-y attentif!
Bonjour,
jeandchanel
yg_be - 5 janv. 2017 à 18:42
combien de colonnes utilises-tu?
Répondre
Signaler 6 jeandchanel - 6 janv. 2017 à 07:31
une colonne!
Répondre
Ben alors le controle se fait sur les cellules de la colonne A pas sur une ligne complete de colonne A a L, faut savoir !!!
Suite:
une facon de faire pour controle cellules colonneA
jeandchanel
yg_be - 5 janv. 2017 à 18:42
combien de colonnes utilises-tu?
Répondre
Signaler 6 jeandchanel - 6 janv. 2017 à 07:31
une colonne!
Répondre
Ben alors le controle se fait sur les cellules de la colonne A pas sur une ligne complete de colonne A a L, faut savoir !!!
Suite:
une facon de faire pour controle cellules colonneA
Sub Sup_Ligne()
Dim Plage As Range
On Error GoTo suite 'sortie si erreur avec defige ecran
Application.ScreenUpdating = False 'fige ecran
With Worksheets("feuil2")
derligF = .Cells.Find("*", , , , xlByRows, xlPrevious).Row 'derniere cellule non vide colonne a
Set Plage = .Range("A3:A" & derligF) 'mise en memoire plage cellules
Nb = Plage.Count 'nombre de rang
NCV = Application.CountIf(Plage, "") 'nombre de cellules "vide"
'boucle sur cellules "vide"
If NCV > 0 Then
lig = 3 'ligne de depart
For N = 1 To NCV
lig = .Columns(1).Find("", .Cells(lig, 1), , xlWhole).Row 'recherche ligne cellule "vide"
.Rows(lig).Delete 'suppression ligne
'¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
lig = lig - 1 '-1 en cas de cellules "vides" consecutives (a supprimer si jamais vrais)
'¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Next N
End If
End With
suite:
Application.ScreenUpdating = True 'defige ecran
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour
si cellule dans colonne A est vide, supprimer la ligne
si cellule dans colonne A est vide, supprimer la ligne
Sub virerligvide()
Dim Derlig As Long
Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
If Application.CountIf(Range("A1:A" & Derlig), "") > 0 Then
Range("A1:A" & Derlig).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End If
End Sub
Bonjour jeandchanel
très sympa de merci et Bonjour aux bénévoles...Merci
Parce que dans une base de données, tu n'as pas d'ent^te en colonne A ?
pourtant quand on lit ton code
TV = O.Range("A1").CurrentRegion
For I = 1 To UBound(TV, 1) - 1
a propos:
t'es sûr ?
très sympa de merci et Bonjour aux bénévoles...Merci
Parce que dans une base de données, tu n'as pas d'ent^te en colonne A ?
pourtant quand on lit ton code
TV = O.Range("A1").CurrentRegion
For I = 1 To UBound(TV, 1) - 1
a propos:
If TV(I + 1, 1) <> TV(I, 1) Then
ReDim Preserve TL(J)
t'es sûr ?