Problème suppression lignes via macro

Fermé
manzono - 17 févr. 2010 à 22:38
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 18 févr. 2010 à 20:49
Bonjour,

J'ai créé une macro permettant de supprimer des lignes dans lesquelles se trouvent des cellules vides.
Celle-ci fonctionne très bien sur des fichiers Excel "simples", mais dans le fichiers sur laquelle je l'exécute, la macro ne supprime pas toutes les lignes dans lesquelles il y a des cellules vides!

Quelqu'un aurait il une idée pour ce qui pourrait empêcher la suppression d'une ligne ?
J'ai vérifié le format des lignes qui ne se supprimaient pas, mais je n'ai rien pu trouver...

le code que j'ai utilisé est le suivant :

Sub supp()
Dim Cel_vide As Range
Dim ad_cel As Integer

For Each Cel_vide In Range('A1:F1000')
If Cel_vide.Value = '' Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete
End If
Next Cel_vide
End Sub


Merci d'avance!
A voir également:

4 réponses

ton programme ne fonctionne pas bien car lorsque tu supprime ta ligne, tu te retrouve sur la ligne en dessous.
si jamais la cellule est vide, elle n'est pas analyser.
il faut que tu dise à ton programme de remonter d'une ligne à chaque fois qu'elle supprime une ligne. ainsi, ton programme de supprimer toute les lignes.


moi j'utilise le programme suivant:

dim i as integer
dim abc as string

'ensuite je vais à la fin du doc et je met le mot "FIN"
'je selectionne la première ligne : imaginon "A1"

range("A1").select
i=0

do
abc =activecell.offset(i,0)

if abc ="" then
activecell.entirerow.delete
i=i-1
else
end if
i=i+1

loop while abc <> "FIN"
0
je fais la plupart de mes macros au boulo.
je t'ai filé le script que j'utilise d'habitude. mais j'ai l'impression que ça n'est pas exactement ça (car je l'ai fais de memoire, et honte pour moi, je n'ai pas excel sur mon pc)

demain je regarderai au boulo. ensuite je te filerai le bon script.


Mais sache qu'il y a encore d'autre façon de proceder.
par exemple,
tu peux appliquer un filtre excel.
avec le filtre, tu dit a excel de ne faire apparaitre que les lignes vides
tu selectionne tout et tu supprime toutes les lignes vides.
0
ok merci bcp ...

moi aussi c'est au boulot et aujourd'hui j'ai utilisé les filtres au lieu de me compliquer avec plusieurs boucles, c'est plus pratiques.

par contre je cherchais à supprimer les lignes dans lesquelles dans la colonne A apparaîtrait une cellule ayant un nombre de caractère différent de 15.
j'ai utilisé des boucles If en gros en mettant : si une cellule dans la colonne A a un nombre de caractère différent de 15 alors on supprime la ligne entière ou est cette cellule. Mais bon ca ne marche pas :-)

Si quelqu'un a une solution c'est bienvenue ^^

Merci à tous
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
18 févr. 2010 à 20:49
Bonjour,

C'est toujours pareil, pour une boucle qui supprime des lignes il faut partir de la dernière et remonter vers haut.
Ex:
    For lig = [A65536].End(xlUp).Row To 1 Step -1
        If Cells(lig, 1) <> ... Then
            ...
        End If
    Next lig

eric
0