VBA test de ligne vide et suppression
Résolu
Mrfrize
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
-
camanagro -
camanagro -
Bonjour,
J'ai pas mal parcouru le forum et je n'ai pas trouver la réponse a ma question.
Je souhaite supprimer les lignes qui sont entierement vide d'un tableau. Ma macro marche mais affiche ce message d'erreur et je ne comprend pas pourquoi?
Run-time error '1004':
Application-defined or object-defined error
Voici la dite macro:
sub supligne
Dim lastline,firstline as integer
'trouve la derniere ligne du tableau
lastline = ActiveSheet.UsedRange.Rows.Count
'trouve la premiere ligne du tableau de donnée
For a = 1 To lastline Step 1
If Cells(a, 1).Value = "Priority" Then
firstline = a + 1
End If
Next a
'Supprime les lignes vide
For r = lastline To fistline Step -1
If Application.CountA(Rows(r)) = Empty Then Rows(r).EntireRow.Delete
Next r
end sub
J'ai essayé de changer le empty par "" mais cela marche encore moins bien.
Quelqu'un peux me dire ou je ne suis planté?
Merci beaucoup
PS: désoler si je ne mets pas tout les accents mais je travail acctuelement avec un clavier qwerty.
J'ai pas mal parcouru le forum et je n'ai pas trouver la réponse a ma question.
Je souhaite supprimer les lignes qui sont entierement vide d'un tableau. Ma macro marche mais affiche ce message d'erreur et je ne comprend pas pourquoi?
Run-time error '1004':
Application-defined or object-defined error
Voici la dite macro:
sub supligne
Dim lastline,firstline as integer
'trouve la derniere ligne du tableau
lastline = ActiveSheet.UsedRange.Rows.Count
'trouve la premiere ligne du tableau de donnée
For a = 1 To lastline Step 1
If Cells(a, 1).Value = "Priority" Then
firstline = a + 1
End If
Next a
'Supprime les lignes vide
For r = lastline To fistline Step -1
If Application.CountA(Rows(r)) = Empty Then Rows(r).EntireRow.Delete
Next r
end sub
J'ai essayé de changer le empty par "" mais cela marche encore moins bien.
Quelqu'un peux me dire ou je ne suis planté?
Merci beaucoup
PS: désoler si je ne mets pas tout les accents mais je travail acctuelement avec un clavier qwerty.
A voir également:
- Supprimer ligne vide excel vba
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word vide - Guide
- Aller à la ligne excel - Guide
- Liste déroulante excel - Guide
- Partager photos en ligne - Guide
9 réponses
Bonjour,
Au passage remplacer [Empty] par [0].
Au passage remplacer [Empty] par [0].
Mrfrize
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
6
Pourquoi? cela ne change rien a mon probleme.
Salut le fil,
j'arrive après la bataille mais bon
Option Explicit
Sub supligne()
Dim lastline, firstline As Integer
Dim a, r As Long
'trouve la derniere ligne du tableau
lastline = ActiveSheet.UsedRange.Rows.Count
'trouve la premiere ligne du tableau de donnée
For a = 1 To lastline Step 1
If Cells(a, 1).Value = "Priority" Then
firstline = a + 1
End If
Next a
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
ou plus simplement
Sub Suplignvides()
Dim r As Long
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
j'arrive après la bataille mais bon
Option Explicit
Sub supligne()
Dim lastline, firstline As Integer
Dim a, r As Long
'trouve la derniere ligne du tableau
lastline = ActiveSheet.UsedRange.Rows.Count
'trouve la premiere ligne du tableau de donnée
For a = 1 To lastline Step 1
If Cells(a, 1).Value = "Priority" Then
firstline = a + 1
End If
Next a
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
ou plus simplement
Sub Suplignvides()
Dim r As Long
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
Sur la ligne :
If Application.CountA(Rows(r)) = Empty Then Rows(r).EntireRow.Delete
Ce qui est souligné est ce qui est surligné en mode débugage.
If Application.CountA(Rows(r)) = Empty Then Rows(r).EntireRow.Delete
Ce qui est souligné est ce qui est surligné en mode débugage.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mauvaise définition de la variable. Au lieu de
For r = lastline To fistline Step -1
il faut
For r = lastline To firstline Step -1
et ca tourne.
Salutations
For r = lastline To fistline Step -1
il faut
For r = lastline To firstline Step -1
et ca tourne.
Salutations
Merci beaucoup,
Et dire que j'ai cherché pendant plusieurs heure pourquoi ca ne marchait pas. Je fairais plus attention les foix prochaines, c'est vraiment bete de perdre autant de temps pour ca.
Merci encore.
Et dire que j'ai cherché pendant plusieurs heure pourquoi ca ne marchait pas. Je fairais plus attention les foix prochaines, c'est vraiment bete de perdre autant de temps pour ca.
Merci encore.
Bonjour,
Pour éviter les erreurs de nom de variable aller dans 'options / editeur' (de VBE) et cocher 'Déclaration des variables obligatoire'
Tous tes modules commenceront par Option Explicit et tu ne pourras pas saisir un nom non déclaré.
eric
Pour éviter les erreurs de nom de variable aller dans 'options / editeur' (de VBE) et cocher 'Déclaration des variables obligatoire'
Tous tes modules commenceront par Option Explicit et tu ne pourras pas saisir un nom non déclaré.
eric
Bonjour,
Je voudrais également supprimer les lignes vides de mon tableau et j'ai donc recopier ce qui a été dit, exactement..Sauf que bien que la macro fonctionne, j'ai également ce message d'erreur..(j'ai bien remplace fist par first, et meme en utilisant la dernière macro Suplignvides(), j'ai ce message..
Question subsidiaire, dans l'idéal j'aimerai supprimer toutes les lignes vides de mon tableur sauf celles suivies d'une ligne dont la première cellule est non vide .J'ai essayé avec des boucles if "bidouillage" qui ne fonctionnent pas du tout donc je suppose qu'il y a une meilleure manière du même genre que celle mentionnée ci dessus.
Je vous remercie pour votre aide!!
Je voudrais également supprimer les lignes vides de mon tableau et j'ai donc recopier ce qui a été dit, exactement..Sauf que bien que la macro fonctionne, j'ai également ce message d'erreur..(j'ai bien remplace fist par first, et meme en utilisant la dernière macro Suplignvides(), j'ai ce message..
Question subsidiaire, dans l'idéal j'aimerai supprimer toutes les lignes vides de mon tableur sauf celles suivies d'une ligne dont la première cellule est non vide .J'ai essayé avec des boucles if "bidouillage" qui ne fonctionnent pas du tout donc je suppose qu'il y a une meilleure manière du même genre que celle mentionnée ci dessus.
Je vous remercie pour votre aide!!