[excel macro] effacer ligne ayant A vide

Résolu/Fermé
testos - 14 août 2006 à 16:49
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 11 sept. 2009 à 22:45
bonjour en faite j'aimerai faire un macro qui me permette nt d'effacer toute les lignes qui on une case vide en A ...
merci d'avance
testos

8 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
9 janv. 2009 à 10:29
bonjour

Tu peux modifier ainsi :
Sub efface_vide()
Dim l As Long
For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
    If Cells(l, "E").Value = "" _
        Or Cells(l, "F").Value = "" Then Cells(l, 1).EntireRow.Delete
Next l
End Sub

Comme tu as plusieurs colonnes j'ai changé la détection de la taille de ton tableau.
Si tu veux que E et F soit vide, il faut remplacer OR par And
9
Ok compliquons un peu les choses,

J'ai quelques notions de VB mais visiblement pas assez pour pouvoir me démerder tout seul:
Voila j'ai des fins de phrases qui ont sauté de ma derniere colonne (L) pour venir s'insérer dans une nouvelle ligne vide en case A

exemple :

J'avais
France 24;54;78;98;MSN98;FALSE
Allemagne 54;90;76;64;76;87;KSKS2;FALSE

et (ne me demandez quoi comment g fé ca) il y a eu plusieurs ligne pour lesquels il s'est passé le suivant:
France 24;54;78;98;MSN98
;FALSE
Allemagne 54;90;76;64;76;87;KSKS2;FALSE

Je n'ai aucune prémice d'idée de comment faire, déjà que je ne sais pas ajouter du texte en fin de chaine de texte d'une cellule sous VB!

Merci énormément pour votre aide
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711 > ancelot
7 avril 2009 à 22:32
bonjour

Si c'est toujours ";FALSE" qui est passé en colonne A ligne suivante, avec cette macro cela devrait recoller en colonne L
Sub recolle_efface()
Dim l As Long
For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
    If Range("A" & l).Value = ";FALSE" Then
         Range("L" & l - 1).Value = Range("L" & l - 1).Value & Range("A" & l).Value
         Rows(l).Delete
    End If
Next l
End Sub
0
ancelot > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
9 avril 2009 à 12:09
Génial!! ça marche du tonnerre!

Grand merci,
0