Macro suppression ligne vide ne fonctionne pas
Résolu
Loiwi
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
Loiwi Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Loiwi Messages postés 36 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai défini une macro supprimant les lignes d'une feuille Excel si la première cellule de chaque ligne est vide.
J'ai naturellement repris des formules trouvées sur le Net et j'ai fait de bêtes copier-coller,
mais j'ai toujours le même message d'erreur: Erreur d’exécution '13': Incompatibilité de type au niveau de la ligne "If Cells(i, 1) = "" Then"
Selon vous qu'elle est l'erreur dans le code qui suit?
Sub Delete_line()
For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Cells(i, 1) = "" Then
Cells(i, 1).EntireRow.Delete
End If
Next i
End Sub
Merci d'avance
j'ai défini une macro supprimant les lignes d'une feuille Excel si la première cellule de chaque ligne est vide.
J'ai naturellement repris des formules trouvées sur le Net et j'ai fait de bêtes copier-coller,
mais j'ai toujours le même message d'erreur: Erreur d’exécution '13': Incompatibilité de type au niveau de la ligne "If Cells(i, 1) = "" Then"
Selon vous qu'elle est l'erreur dans le code qui suit?
Sub Delete_line()
For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Cells(i, 1) = "" Then
Cells(i, 1).EntireRow.Delete
End If
Next i
End Sub
Merci d'avance
Configuration: Windows / Chrome 80.0.3987.163
A voir également:
- Macro suppression ligne vide ne fonctionne pas
- Forcer suppression fichier - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Partager photos en ligne - Guide
- Supprimer page word vide - Guide
- Mètre en ligne - Guide
6 réponses
Bonjour
J'ai fait un essai sur des cellules fusionnées horizontalement et/ou verticalement et c'est OK
J'ai fait un essai sur des cellules fusionnées horizontalement et/ou verticalement et c'est OK
Option Explicit
'---------------------------------------------------------------------------
Sub Supprimer_si_vide()
Dim Ligne As Long
On Error Resume Next
Ligne = Columns("A").Find("*", , , , , xlPrevious).Row
Range("A2:A" & Ligne).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Non toujours pas, est-ce que cela peut-être dû au fait que j'ai des cellules fusionnées dans la colonne A?
Y'a t-il un moyen de la faire fonctionner, par exemple lancer la macro sur l'ensemble des colonnes concernées par la fusion?
essaie ceci:
@+ Le Pivert
Sub Delete_line() Dim i As Long Dim cellule As Range Dim derligne As Long derligne = Range("A" & Rows.Count).End(xlUp).Row For i = derligne To 1 Step -1 For Each cellule In Range("A1:A" & derligne) If Range(cellule.Address).MergeCells Then Else If Cells(i, 1) = "" Then Cells(i, 1).EntireRow.Delete End If End If Next cellule Next i End Sub
@+ Le Pivert
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai testé la proposition pour les cellules fusionnées, la première sans cellules fusionnées mais j'ai toujours le même problème...
Voici une boucle sur les cellules fusionnées et enlever la fusion:
Sub detecteFusion() Dim cellule As Range Dim derligne As Long derligne = Range("A" & Rows.Count).End(xlUp).Row For Each cellule In Range("A1:A" & derligne) 'adapter plage cellule If Range(cellule.Address).MergeCells Then cellule.UnMerge 'enleve la fusion End If Next cellule End Sub
J'aurais du commencer par là, en fait j'ai copié un fichier pour garder la mise en forme sans savoir qu'il y'avait des formules cachées derrière. Une fois que j'ai refait la feuille à neuf, la macro initiale a fonctionné parfaitement. Malgré tout je tiens à vous remercier pour la qualité et la rapidité de vos réponses