OVH Cloud OVH Cloud

Aide pour Macro Excel

10 réponses
Avatar
marsupile
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce tableau je
peux avoir de lignes vides. Je souhaiterais créer une macro qui detruise ces
lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais seulement
l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci


marsupilette@numericable.fr

10 réponses

Avatar
Chris MICHEL
Hum! Je peux te proposer une solution qui marche pour sûr
avec une macro toute faite:

sub supr_ligne_vides()

dim i as integer

for i=[A65534].end(3).row to 1 step -1
if [A1]="" then rows(i).delete
next

end sub

En passant par l'enregistreur, tu peux essayer de mettre
un filtre automatique, de demander l'affichage des lignes
vides via le filtre, de masquer la ligne avec les
intitulés de colonne puis de sélectionner
la "currentregion" (c'est une option dans une barre
d'outils, je ne sais plus laquelle) et de supprimer tout
ça.

Je te conseille de tester ça prudemment car je n'ai pas
essayé cette solution.

Chris.

-----Message d'origine-----
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à
jour de ce tableau je

peux avoir de lignes vides. Je souhaiterais créer une
macro qui detruise ces

lignes vides.
Mais hélas je ne connais pas très bien visual basic, je
connais seulement

l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci





.



Avatar
Jacquouille
Bonsoir Chris
Et s'il y a quelque chose dans la colonne B (ou autre ) et rien dans A ?
Il n'y aurait pas un truc du genre :
If entire.row="" then
......
?
???
--
Jacquouille conseille : http://www.excelabo.net


"Chris MICHEL" a écrit dans le message
news: c10801c3ece5$266efe20$
Hum! Je peux te proposer une solution qui marche pour sûr
avec une macro toute faite:

sub supr_ligne_vides()

dim i as integer

for i=[A65534].end(3).row to 1 step -1
if [A1]="" then rows(i).delete
next

end sub

En passant par l'enregistreur, tu peux essayer de mettre
un filtre automatique, de demander l'affichage des lignes
vides via le filtre, de masquer la ligne avec les
intitulés de colonne puis de sélectionner
la "currentregion" (c'est une option dans une barre
d'outils, je ne sais plus laquelle) et de supprimer tout
ça.

Je te conseille de tester ça prudemment car je n'ai pas
essayé cette solution.

Chris.

-----Message d'origine-----
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à
jour de ce tableau je

peux avoir de lignes vides. Je souhaiterais créer une
macro qui detruise ces

lignes vides.
Mais hélas je ne connais pas très bien visual basic, je
connais seulement

l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci





.



Avatar
ChrisV
Salut Jacquouille,

Et s'il y a quelque chose dans la colonne B (ou autre )...


Alors la ligne n'est pas vide...!
;-)


ChrisV


"Jacquouille" a écrit dans le message de
news:
Bonsoir Chris
Et s'il y a quelque chose dans la colonne B (ou autre ) et rien dans A ?
Il n'y aurait pas un truc du genre :
If entire.row="" then
......
?
???
--
Jacquouille conseille : http://www.excelabo.net


"Chris MICHEL" a écrit dans le
message

news: c10801c3ece5$266efe20$
Hum! Je peux te proposer une solution qui marche pour sûr
avec une macro toute faite:

sub supr_ligne_vides()

dim i as integer

for i=[A65534].end(3).row to 1 step -1
if [A1]="" then rows(i).delete
next

end sub

En passant par l'enregistreur, tu peux essayer de mettre
un filtre automatique, de demander l'affichage des lignes
vides via le filtre, de masquer la ligne avec les
intitulés de colonne puis de sélectionner
la "currentregion" (c'est une option dans une barre
d'outils, je ne sais plus laquelle) et de supprimer tout
ça.

Je te conseille de tester ça prudemment car je n'ai pas
essayé cette solution.

Chris.

-----Message d'origine-----
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à
jour de ce tableau je

peux avoir de lignes vides. Je souhaiterais créer une
macro qui detruise ces

lignes vides.
Mais hélas je ne connais pas très bien visual basic, je
connais seulement

l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci





.







Avatar
Jacquouille
Salut ChrisV
Cela, je l'avais compris, mais comme j'ai lu dans la réponse de Cris Michel
:
if [A1]="" then rows(i).delete
j'en suis arrivé à me poser la question....

j'ai l'impression qu'il ne fait sa condition ESTVIDE que sur la colA.....et
non sur la ligne entière.
Mais, je repose (en paix) ma question : Existe-t-il un truc du genre :
If entire.row="" then ..... ???
merci et bon WE


--
Jacquouille conseille : http://www.excelabo.net


"ChrisV" a écrit dans le message news:
OM#
Salut Jacquouille,

Et s'il y a quelque chose dans la colonne B (ou autre )...


Alors la ligne n'est pas vide...!
;-)


ChrisV


"Jacquouille" a écrit dans le message de
news:
Bonsoir Chris
Et s'il y a quelque chose dans la colonne B (ou autre ) et rien dans A ?
Il n'y aurait pas un truc du genre :
If entire.row="" then
......
?
???
--
Jacquouille conseille : http://www.excelabo.net


"Chris MICHEL" a écrit dans le
message

news: c10801c3ece5$266efe20$
Hum! Je peux te proposer une solution qui marche pour sûr
avec une macro toute faite:

sub supr_ligne_vides()

dim i as integer

for i=[A65534].end(3).row to 1 step -1
if [A1]="" then rows(i).delete
next

end sub

En passant par l'enregistreur, tu peux essayer de mettre
un filtre automatique, de demander l'affichage des lignes
vides via le filtre, de masquer la ligne avec les
intitulés de colonne puis de sélectionner
la "currentregion" (c'est une option dans une barre
d'outils, je ne sais plus laquelle) et de supprimer tout
ça.

Je te conseille de tester ça prudemment car je n'ai pas
essayé cette solution.

Chris.

-----Message d'origine-----
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à
jour de ce tableau je

peux avoir de lignes vides. Je souhaiterais créer une
macro qui detruise ces

lignes vides.
Mais hélas je ne connais pas très bien visual basic, je
connais seulement

l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci





.











Avatar
fxm
Bonsoir Jacques,

Si la ligne est complètement vide, un tri ne ferait-il pas l'affaire ?

@+
FxM




Jacquouille wrote:

Salut ChrisV
Cela, je l'avais compris, mais comme j'ai lu dans la réponse de Cris Michel
:

if [A1]="" then rows(i).delete


j'en suis arrivé à me poser la question....
j'ai l'impression qu'il ne fait sa condition ESTVIDE que sur la colA.....et
non sur la ligne entière.
Mais, je repose (en paix) ma question : Existe-t-il un truc du genre :
If entire.row="" then ..... ???
merci et bon WE


--
Jacquouille conseille : http://www.excelabo.net


"ChrisV" a écrit dans le message news:
OM#

Salut Jacquouille,


Et s'il y a quelque chose dans la colonne B (ou autre )...


Alors la ligne n'est pas vide...!
;-)


ChrisV


"Jacquouille" a écrit dans le message de
news:

Bonsoir Chris
Et s'il y a quelque chose dans la colonne B (ou autre ) et rien dans A ?
Il n'y aurait pas un truc du genre :
If entire.row="" then
......
?
???
--
Jacquouille conseille : http://www.excelabo.net


"Chris MICHEL" a écrit dans le


message

news: c10801c3ece5$266efe20$
Hum! Je peux te proposer une solution qui marche pour sûr
avec une macro toute faite:

sub supr_ligne_vides()

dim i as integer

for i=[A65534].end(3).row to 1 step -1
if [A1]="" then rows(i).delete
next

end sub

En passant par l'enregistreur, tu peux essayer de mettre
un filtre automatique, de demander l'affichage des lignes
vides via le filtre, de masquer la ligne avec les
intitulés de colonne puis de sélectionner
la "currentregion" (c'est une option dans une barre
d'outils, je ne sais plus laquelle) et de supprimer tout
ça.

Je te conseille de tester ça prudemment car je n'ai pas
essayé cette solution.

Chris.


-----Message d'origine-----
Bonjour,

Je dispose d'un tableau sous excel et selon la mise à


jour de ce tableau je

peux avoir de lignes vides. Je souhaiterais créer une


macro qui detruise ces

lignes vides.
Mais hélas je ne connais pas très bien visual basic, je


connais seulement

l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci





.














Avatar
Frédéric Sigonneau
Bonsoir,

En VBA, une solution parmi d'autres :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If Application.CountA(Range(Cells(i, .Column), _
Cells(i, .Column + .Columns.Count))) = 0 Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce tableau je
peux avoir de lignes vides. Je souhaiterais créer une macro qui detruise ces
lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais seulement
l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci




Avatar
Joe
Bonjour tout le monde,
Si je veux faire la même chose pour le lignes dont la valeur de la colonne A
est = à DEL

Merci

"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

En VBA, une solution parmi d'autres :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If Application.CountA(Range(Cells(i, .Column), _
Cells(i, .Column + .Columns.Count))) = 0 Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce tableau
je


peux avoir de lignes vides. Je souhaiterais créer une macro qui detruise
ces


lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais
seulement


l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci








Avatar
ChrisV
Bonjour Joe,

Sub suppr_DEL()
Dim i As Long
Application.ScreenUpdating = False
For i = [A65536].End(xlUp).Row To 1 Step -1
If Cells(i, "A") Like "DEL" Then Rows(i).Delete
Next i
End Sub


ChrisV


"Joe" a écrit dans le message de news:

Bonjour tout le monde,
Si je veux faire la même chose pour le lignes dont la valeur de la colonne
A

est = à DEL

Merci

"Frédéric Sigonneau" a écrit dans le
message

de news:
Bonsoir,

En VBA, une solution parmi d'autres :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If Application.CountA(Range(Cells(i, .Column), _
Cells(i, .Column + .Columns.Count))) = 0 Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce
tableau



je
peux avoir de lignes vides. Je souhaiterais créer une macro qui
detruise



ces
lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais
seulement


l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci












Avatar
Frédéric Sigonneau
Bonsoir,

En supposant que DEL soit un texte existant dans certaines cellules de la
colonne A, tu modifies légèrement le code :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If UCase(Cells(i, "A").Value) = "DEL" Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

(supprime les lignes dont la cellule en colonne A contient aussi bien DEL que
del ou Del).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde,
Si je veux faire la même chose pour le lignes dont la valeur de la colonne A
est = à DEL

Merci

"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

En VBA, une solution parmi d'autres :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If Application.CountA(Range(Cells(i, .Column), _
Cells(i, .Column + .Columns.Count))) = 0 Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce tableau
je


peux avoir de lignes vides. Je souhaiterais créer une macro qui detruise
ces


lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais
seulement


l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci










Avatar
Joe
Salut,
Merci à vous deux, je testerai demain

@+
Joe


"Frédéric Sigonneau" a écrit dans le message
de news:
Bonsoir,

En supposant que DEL soit un texte existant dans certaines cellules de la
colonne A, tu modifies légèrement le code :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If UCase(Cells(i, "A").Value) = "DEL" Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

(supprime les lignes dont la cellule en colonne A contient aussi bien DEL
que

del ou Del).

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour tout le monde,
Si je veux faire la même chose pour le lignes dont la valeur de la
colonne A


est = à DEL

Merci

"Frédéric Sigonneau" a écrit dans le
message


de news:
Bonsoir,

En VBA, une solution parmi d'autres :

Sub SupprLignesVides()
Dim i&
With ActiveSheet.UsedRange
For i = (.Row + .Rows.Count) To .Row Step -1
If Application.CountA(Range(Cells(i, .Column), _
Cells(i, .Column + .Columns.Count))) = 0 Then _
Cells(i, 1).EntireRow.Delete
Next
End With
End Sub

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

Je dispose d'un tableau sous excel et selon la mise à jour de ce
tableau




je
peux avoir de lignes vides. Je souhaiterais créer une macro qui
detruise




ces
lignes vides.
Mais hélas je ne connais pas très bien visual basic, je connais
seulement


l'enregistreur de macro sous excel.

Pourriez vous m'aider?

Merci