VBA - Supprimer lignes vides ds cas de liste

petipeton

XLDnaute Nouveau
BOnjour à tous ! :)

Bon, comme d'hab, je coince sur mon niveau débutant en vba qui n'arrive pas à décoller... et je suis un problème qui va vous paraître basique, mais bon...

J'ai créé un fichier Excel qui constitue la source d'un publipostage.

Dans certaines cellules de ce tableau se trouvent des listes déroulantes que j'ai créées pour éviter les erreurs de saisie (et puis pour faciliter le travail de saisie). Pour être sûr, j'ai fait ça sur 30 lignes.

Du coup, quand je fais mon publipostage, je me retrouve avec des courriers pour les lignes dûment complétées... et les autres, jusqu'à 30 !

La solution serait que je supprime, avant le publipostage, les lignes vides (= non complétées mais contenant tout de même des listes déroulantes).

Pouvez-vous me donner le code qui me permettrait de dire : si la ligne n'est pas complétée, alors l'effacer ?

Merci molto molto pour votre aide ! :)

Et par avance, plein de :kiss:
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Petipeton, bonjour le forum

Ce code à adapter. Dans cet exemple je considère que les celulles contenant les listes sont dans la plage A1:A... (dernière éditée).


Sub Macro1()
Dim x As Long
For x = Range('A65536').End(xlUp).Row To 1 Step -1
If Cells(x, 1).Value) = '' Then Cells(x, 1).EntireRow.Delete
Next x
End Sub
 

petipeton

XLDnaute Nouveau
Ca ne fonctionne pas, malheureusement...

Ci joint mon fichier !

Merci quand même de ta proposition qui est déjà une base sur laquelle je commence à travailler.

Je ne refuse pas d'autres propositions qui me permettraient de progresser !

:kiss: :kiss: :kiss: :kiss: [file name=Jury.zip size=13878]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Jury.zip[/file]
 

Pièces jointes

  • Jury.zip
    13.6 KB · Affichages: 34

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Petipeton, bonjour le forum,

Ok ! Avec le fichier je comprends mieux. Essaie comme ça :


Sub supprligne()
Dim Cel As Range
For Each Cel In Range('A2:A30')'plage à adapter si tu l'agrandit
If Cel.Value = '' Then Cel.EntireRow.Delete
Next Cel
End Sub
Car le code que je t'avais proposé ne bouclait que sur les cellule éditées donc n'effacait jamais une seule ligne...
 

petipeton

XLDnaute Nouveau
M'sieur Robert, z'êtes un zamour !

Mais j'étais arrivé à un résultat similaire en cherchant sur la base de ce que tu m'avais déjà donné.

Néanmoins, je tournais encore un peu en rond (remarque, tourner autrement qu'en rond revient vaguement à arrondir les angles).

Merci, donc, encore et encore !

Et une volée de bisous, une !
 

Discussions similaires