Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.j
Bonsoir, par exemple derLigne = ActiveSheet.Rows.Count Application.ScreenUpdating = False For r = derLigne To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Mais cela risque d'être un peu long ! Il vaudrait mieux limiter à la zone en cours. ActiveSheet.UsedRange.Rows.Count -- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"OLS" a écrit dans le message de news: boe2ho$3ct$ | Bonjour, | | Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait | une feuille entière et qui supprimerrait toute ligne vide. | Merci | | Possibilité de me répondre par mail | | -- | OLS | |
Bonsoir,
par exemple
derLigne = ActiveSheet.Rows.Count
Application.ScreenUpdating = False
For r = derLigne To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Mais cela risque d'être un peu long !
Il vaudrait mieux limiter à la zone en cours.
ActiveSheet.UsedRange.Rows.Count
--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"OLS" <olivier_ouradou@yahoo.com> a écrit dans le message de news:
boe2ho$3ct$1@news-reader5.wanadoo.fr...
| Bonjour,
|
| Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait
| une feuille entière et qui supprimerrait toute ligne vide.
| Merci
|
| Possibilité de me répondre par mail
|
| --
| OLS
|
|
Bonsoir, par exemple derLigne = ActiveSheet.Rows.Count Application.ScreenUpdating = False For r = derLigne To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Mais cela risque d'être un peu long ! Il vaudrait mieux limiter à la zone en cours. ActiveSheet.UsedRange.Rows.Count -- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"OLS" a écrit dans le message de news: boe2ho$3ct$ | Bonjour, | | Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait | une feuille entière et qui supprimerrait toute ligne vide. | Merci | | Possibilité de me répondre par mail | | -- | OLS | |
Michel Gaboly
Bonsoir,
Par sécurité, avant d'effectuer la manip qui suit, je conseille d'enregistrer le document pour pouvoir revenir aisément à l'état initial en cas de mauvaise surprise, dûe à la structure des données sur la feuille.
Pour les feuilles contenant beaucoup de lignes le plus rapide, selon moi est d'insérer une colonne dans laquelle on inscrit le numéro de ligne (directement la valeur, sans la fonction LIGNE()).
Ensuite, on sélectionne la zone utile de la feuille, et on fait un tri sur une colonne contenant des données (autre que celle que l'on vient d'insérer)
Le tri a pour intérêt de regrouper les lignes vides, ce qui permet de toutes les supprimer en une fois.
On retrie en utilisant la colonne ajoutée, afin de rétablir l'ordre initial, et on supprime cette colonne.
Si c'est ponctuel cela peut se faire à la main, sinon en macro, cela donne :
Sub SuppLignesVides() Dim Ref As Range, i As Long, j As Long j = ActiveSheet.UsedRange.Rows.Count ' Insertion de la colonne destinée à retrouver l'ordre initial des lignes Range("A:A").Insert ' Numérotation des lignes Set Ref = Range("A1") With Ref .Value = 1 .AutoFill Range(Ref, .Offset(j - 1)), xlFillSeries End With ' Tri pour regrouper les lignes vides. ' NB - la colonne à utiliser pour le tri doit être choisis en fonction des ' données de la feuille. Cette instruction peut nécessiter une adaptation. ActiveSheet.UsedRange.Sort Range("B1") i = Range("B1").End(xlDown).Row + 1 ' Suppression des lignes vides Rows(i & ":" & j).Delete ActiveSheet.UsedRange.Sort Range("A1") Range("A:A").Delete End Sub
La colonne utilisée pour trier les données et regrouper les lignes vides doit être choisie avec soin en fonction des données. La première instruction de tri peut également nécessiter une adaptation, pour les mêmes raisons, ce qui justifie la mise en garde initiale (enregistrement préalable du document vivement conseil- lée).
Bonsoir, par exemple derLigne = ActiveSheet.Rows.Count Application.ScreenUpdating = False For r = derLigne To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Mais cela risque d'être un peu long ! Il vaudrait mieux limiter à la zone en cours. ActiveSheet.UsedRange.Rows.Count -- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"OLS" a écrit dans le message de news: boe2ho$3ct$ | Bonjour, | | Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait | une feuille entière et qui supprimerrait toute ligne vide. | Merci | | Possibilité de me répondre par mail | | -- | OLS | |
-- Cordialement,
Michel Gaboly http://www.gaboly.com
Bonsoir,
Par sécurité, avant d'effectuer la manip qui suit, je conseille d'enregistrer
le document pour pouvoir revenir aisément à l'état initial en cas de mauvaise
surprise, dûe à la structure des données sur la feuille.
Pour les feuilles contenant beaucoup de lignes le plus rapide, selon moi
est d'insérer une colonne dans laquelle on inscrit le numéro de ligne
(directement la valeur, sans la fonction LIGNE()).
Ensuite, on sélectionne la zone utile de la feuille, et on fait un tri sur
une colonne contenant des données (autre que celle que l'on vient d'insérer)
Le tri a pour intérêt de regrouper les lignes vides, ce qui permet de toutes
les supprimer en une fois.
On retrie en utilisant la colonne ajoutée, afin de rétablir l'ordre initial, et
on supprime cette colonne.
Si c'est ponctuel cela peut se faire à la main, sinon en macro, cela donne :
Sub SuppLignesVides()
Dim Ref As Range, i As Long, j As Long
j = ActiveSheet.UsedRange.Rows.Count
' Insertion de la colonne destinée à retrouver l'ordre initial des lignes
Range("A:A").Insert
' Numérotation des lignes
Set Ref = Range("A1")
With Ref
.Value = 1
.AutoFill Range(Ref, .Offset(j - 1)), xlFillSeries
End With
' Tri pour regrouper les lignes vides.
' NB - la colonne à utiliser pour le tri doit être choisis en fonction des
' données de la feuille. Cette instruction peut nécessiter une adaptation.
ActiveSheet.UsedRange.Sort Range("B1")
i = Range("B1").End(xlDown).Row + 1
' Suppression des lignes vides
Rows(i & ":" & j).Delete
ActiveSheet.UsedRange.Sort Range("A1")
Range("A:A").Delete
End Sub
La colonne utilisée pour trier les données et regrouper les lignes vides doit être
choisie avec soin en fonction des données. La première instruction de tri peut
également nécessiter une adaptation, pour les mêmes raisons, ce qui justifie la
mise en garde initiale (enregistrement préalable du document vivement conseil-
lée).
Bonsoir,
par exemple
derLigne = ActiveSheet.Rows.Count
Application.ScreenUpdating = False
For r = derLigne To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
Mais cela risque d'être un peu long !
Il vaudrait mieux limiter à la zone en cours.
ActiveSheet.UsedRange.Rows.Count
--
Daniel MVP Excel
FAQ du Forum Microsoft Public Fr Excel
http://dj.joss.free.fr/faq.htm
"OLS" <olivier_ouradou@yahoo.com> a écrit dans le message de news:
boe2ho$3ct$1@news-reader5.wanadoo.fr...
| Bonjour,
|
| Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait
| une feuille entière et qui supprimerrait toute ligne vide.
| Merci
|
| Possibilité de me répondre par mail
|
| --
| OLS
|
|
Par sécurité, avant d'effectuer la manip qui suit, je conseille d'enregistrer le document pour pouvoir revenir aisément à l'état initial en cas de mauvaise surprise, dûe à la structure des données sur la feuille.
Pour les feuilles contenant beaucoup de lignes le plus rapide, selon moi est d'insérer une colonne dans laquelle on inscrit le numéro de ligne (directement la valeur, sans la fonction LIGNE()).
Ensuite, on sélectionne la zone utile de la feuille, et on fait un tri sur une colonne contenant des données (autre que celle que l'on vient d'insérer)
Le tri a pour intérêt de regrouper les lignes vides, ce qui permet de toutes les supprimer en une fois.
On retrie en utilisant la colonne ajoutée, afin de rétablir l'ordre initial, et on supprime cette colonne.
Si c'est ponctuel cela peut se faire à la main, sinon en macro, cela donne :
Sub SuppLignesVides() Dim Ref As Range, i As Long, j As Long j = ActiveSheet.UsedRange.Rows.Count ' Insertion de la colonne destinée à retrouver l'ordre initial des lignes Range("A:A").Insert ' Numérotation des lignes Set Ref = Range("A1") With Ref .Value = 1 .AutoFill Range(Ref, .Offset(j - 1)), xlFillSeries End With ' Tri pour regrouper les lignes vides. ' NB - la colonne à utiliser pour le tri doit être choisis en fonction des ' données de la feuille. Cette instruction peut nécessiter une adaptation. ActiveSheet.UsedRange.Sort Range("B1") i = Range("B1").End(xlDown).Row + 1 ' Suppression des lignes vides Rows(i & ":" & j).Delete ActiveSheet.UsedRange.Sort Range("A1") Range("A:A").Delete End Sub
La colonne utilisée pour trier les données et regrouper les lignes vides doit être choisie avec soin en fonction des données. La première instruction de tri peut également nécessiter une adaptation, pour les mêmes raisons, ce qui justifie la mise en garde initiale (enregistrement préalable du document vivement conseil- lée).
Bonsoir, par exemple derLigne = ActiveSheet.Rows.Count Application.ScreenUpdating = False For r = derLigne To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r Mais cela risque d'être un peu long ! Il vaudrait mieux limiter à la zone en cours. ActiveSheet.UsedRange.Rows.Count -- Daniel MVP Excel FAQ du Forum Microsoft Public Fr Excel http://dj.joss.free.fr/faq.htm
"OLS" a écrit dans le message de news: boe2ho$3ct$ | Bonjour, | | Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait | une feuille entière et qui supprimerrait toute ligne vide. | Merci | | Possibilité de me répondre par mail | | -- | OLS | |
-- Cordialement,
Michel Gaboly http://www.gaboly.com
OLS
Merci pour vos réponses
OLS "OLS" a écrit dans le message de news: boe2ho$3ct$
Bonjour,
Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait une feuille entière et qui supprimerrait toute ligne vide. Merci
Possibilité de me répondre par mail
-- OLS
Merci pour vos réponses
OLS
"OLS" <olivier_ouradou@yahoo.com> a écrit dans le message de news:
boe2ho$3ct$1@news-reader5.wanadoo.fr...
Bonjour,
Quelqu'un pourrait il m'aider en m'écrivant une macro qui séléctionnerait
une feuille entière et qui supprimerrait toute ligne vide.
Merci