Supprimer lignes vides VBA Excel 2003

Bonjour à tous,

Nouveau sur ce forum, je viens auprès de vous pour tenter de solutionner un problème vba. Ci-joint un fichier pour illustrer mon propos. En effet je tente de supprimer des lignes vides avec un module 5. Ça fonctionne bien si le fichier Excel est "normal" mais le mien à ceci de particulier c'est que je fais afficher puis figer la date du jour en tapant un nombre dans la colonne B ou C ou B & C. Lorsque je supprime le nombre la date s'en va, c'est ce que je veux. Mais pour supprimer des lignes vides avec le module 5 après la sélection ça ne supprime que la dernière ligne…SAUF si je modifie le nom du fichier dans le module 4. Simplement mettre un blanc ou ajouter ou supprimer une lettre!

Des spécialistes du VBA ont-ils des idées ou tout simplement ce n'est pas compatible.

D'avance merci.

Bonjour,

Si j'ai bien compris il te faut suspendre le calcul pendant la suppression car tes macros FUNCTION réagissent à chaque suppression de lignes

Dans le module 5 VBA, fais ceci :

- Avant le SET = P mets -->

Application.Calculation = xlCalculationManual

- Après le END WITH mets -->

Application.Calculation = xlAutomatic

Si ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Amicalement

Dan a écrit :

Bonjour,

Si j'ai bien compris il te faut suspendre le calcul pendant la suppression car tes macros FUNCTION réagissent à chaque suppression de lignes

Dans le module 5 VBA, fais ceci :

- Avant le SET = P mets -->

Application.Calculation = xlCalculationManual

- Après le END WITH mets -->

Application.Calculation = xlAutomatic

Si ok, merci de cloturer le fil en cliquant sur le V vert à coté du bouton EDITER

Amicalement

UN GRAND MERCI. Bonne journée à tous et toi en particulier.

Encore une petite question:

J'ai mis en rouge 2 lignes pour protèger et déprotèger la feuille. Ça protège bien mais ne reprotège pas!

Sub SupprimerLignesVides()

ActiveSheet.Unprotect

Dim p As Range, i As Long

Application.Calculation = xlCalculationManual

Set p = Application.InputBox(Prompt:="Sélectionnez une plage", _

Title:="Supprimer lignes vides", Type:=8)

With p

For i = .Rows.Count To 1 Step -1

If Application.CountA(.Rows(i)) = 0 Then _

.Rows(i).EntireRow.Delete Shift:=xlUp

Next i

End With

Application.Calculation = xlAutomatic

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _

Scenarios:=True

End Sub

Rechercher des sujets similaires à "supprimer lignes vides vba 2003"