Macro pour supprimer des lignes vides

Bonjour tout le monde.

Voici la macro que j'utilisais jusqu'à présent et qui fonctionnait parfaitement :

Sub SupprimerVide()

Dim j As Integer

For j = 370 To 30 Step -1

While Cells(j, 10).Value = ""

Cells(j, 10).EntireRow.Delete

Wend

Next j

End Sub

En gros j'ai un bon de commande pour des fournitures de bureau pré renseigné. Il ne me reste qu'à mettre les quantités pour les produits qui m'intéressent puis de supprimer les lignes où il n'y a pas de quantité. J'ai donc utilisé une macro histoire d'arrêter de supprimer les lignes manuellement.

Depuis deux jours rien ne va plus. La macro tourne bien au début puis elle bloque au bout de quelques ligne. Enfin elle tourne dans le vide elle ne supprime plus les lignes....

Voici le fichier dans lequel j'utilise la macro.

si quelqun a une idée pour débloquer ce truc...

Merci d'avance.

Bonjour,

Ton fichier n'est pas passé. Peux-tu le remettre stp.

Sinon ton bon de commande commence à la ligne 30 jusque la ligne 370 ?

le 10 dans ta macro, c'est bien la colonne J ?

A te lire

Dan

https://www.excel-pratique.com/~files/doc/Modele-bon-de-commande.xls désolé j'avais zappé les espaces....

C'est tout à fait ça ce qui m'intéresse se trouve entre la ligne 30 et la 370 et les quantités sont en colone 10.

Bonjour Rongiermj

Je ne peux rien pour toi en VBA, mais, si tu n'as pas mieux, tu peux toujours tester mon XL4.

Au passage, j'ai modifié 2 ou 3 formules pour supprimer les valeurs d'erreur.

Cordialement,

Amadéus

https://www.excel-pratique.com/~files/doc/xoMXiModele-bon-de-commande.xls

Perso je ne connais rien à ce langage du coup je ne vais pas m'y lancer car déjà avec le VBA....

enfin bref merci de ta réponse.

@+

Salut le Forum

Pour accelérer le code sans Macro XL4 que je ne maitrise pas

Sub SupprimerVide()

Application.Calculation = xlManual

Dim j As Integer

For j = 370 To 30 Step -1
  If IsEmpty(Cells(j, 10).Value) Then Cells(j, 10).EntireRow.Delete
Next j

Application.Calculation = xlAutomatic

End Sub

Mytå

Merci Mytå pour ta réponse.

Alors d'abord une petite question sur la macro que tu m'as retournée. A quoi ça sert le application.Calculation ?

Bon sinon mon problème persiste même avec cette nouvelle macro.... tout démarre correctement comme avec la mienne puis au bout d'un moment la macro tourne en continue sans supprimer une seule ligne ni déplacer le curseur. je suis obligé d'appuyer sur "échap" pour y mettre fin...

Est-ce possible que celà vienne du fait qu'excel soit sur un server et le fichier sur un autre ce qui fait que le temps entre deux réponses est trop long et du coup EXCEL s'y perd?

je ne sais pas lol je ne suis pas informaticien mais mon problème est survenu depuis des déménagements de servers.....

Merci.

Bonjour à tous,

essaies cette procédure à la place de ta boucle:

sub enlever_vide()

Cells.Columns(10).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

end sub

10="J"

Bonsoir,

Tu peux aussi essayer cette macro :

Sub Supprimervide()
Dim n As Integer
Application.ScreenUpdating = False
For n = 370 To 30 Step -1
If (Range("J" & n) = "") Then
Rows(n).Delete
End If
Next n
Application.ScreenUpdating = True
End Sub

A te lire

Dan

bonjour,

Erreur dans ma proposition d'hier... rectifie avec:

Cells.Range("J30:J370").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Merci beaucoup pour toutes ces aides et cette patience.

La bonne nouvelle? ça y est cela fonctionne parfaitement.

Merci Nad-Dan cela fonctionne correctement.

Merci michel_m cela fonctionne très bien.

A choisir j'opte pour la solution michel_m qui a supprimé la boucle. En effet niveau efficacité c'est approuvé à 100%. c'est incomparable avec le système précédent.

Merci tout le monde

Problème résolu

Bonjour

C'est vrai qu'en évitant la boucle, c'est un gain de temps considérable.

Mais, pour parfaire le travail, comment avoir les résultats des divers totaux de la Feuille ?

Cordialement,

Amadéus

Rechercher des sujets similaires à "macro supprimer lignes vides"