> Tous les forums > Forum Bureautique
 [VBA+suppression conditionnelle de ligne]Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Magnan
  Posté le 14/06/2015 @ 12:06 
Aller en bas de la page 
Astucien

Bonjour,

J'ai un fichier XL et je voudrais supprimer les lignes ou le n° contact (Colonne B) est vide.

A la main, j'ai commencé, et j'en suis péniblement à la 600ième ligne sur plus de 6.000. Pas gagné.

Mais je ne suis pas assez bon en VBA pour créer une macro.

Si vous pouviez m'aider.

Merci d'avance.

Publicité
ferrand
 Posté le 14/06/2015 à 13:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Sous réserve d'infos éventuellement manquantes...

version 1

Sub EliminerContactsVides1()
Dim n%, k%, m%
n = Cells(Rows.Count, 1).End(xlUp).Row
k = Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(n, k)).Sort key1:=Cells(2, 2), order1:=xlAscending, Header:=xlNo
m = Cells(Rows.Count, 2).End(xlUp).Row + 1
Range(Cells(m, 2), Cells(n, 2)).EntireRow.Delete
End Sub

On trie sur la colonne B, ce qui positionne les vides à la fin, et on supprime d'un coup la portion concernée.

Faisable manuellement de façon assez rapide.

ferrand
 Posté le 14/06/2015 à 13:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

version 2

Sub EliminerContactsVides2()
Dim n%, k%, m%
n = Cells(Rows.Count, 1).End(xlUp).Row
k = Cells(1, Columns.Count).End(xlToLeft).Column + 1
For m = 2 To n
Cells(m, k).Value = m - 1
Next m
Range(Cells(2, 1), Cells(n, k)).Sort key1:=Cells(2, 2), order1:=xlAscending, Header:=xlNo
m = Cells(Rows.Count, 2).End(xlUp).Row + 1
Range(Cells(m, 2), Cells(n, 2)).EntireRow.Delete
Range(Cells(2, 1), Cells(m - 1, k)).Sort key1:=Cells(2, k), order1:=xlAscending, Header:=xlNo
Columns(k).Delete
End Sub

Même chose, mais on rétablit l'ordre initial après suppression. Pour cela introduction d'une colonne de numéros d'ordre que l'on supprime en fin.

Magnan
 Posté le 14/06/2015 à 16:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir,

Merci pour ces macros.

Je n'avais pas pensé à l'affichage des cellules vides de la colonne B puis leur suppression.

Enfantin.

Encore merci Ferrand.

A+

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Suppression de l ligne créée par la saisie de 3 tirets + ENTER
Macro excel Suppression de ligne
SUPPRESSION DE LIGNE AVEC UN MOT
SUPPRESSION DE LIGNE D'APRES UN MOT
SUPPRESSION DE LIGNE PLUS RAPIDE
excel recuperation d'une info suppression ligne
Quel agenda en ligne choisir
copier ligne si cellule vide
Document modifiable en ligne
recherche la ligne et passe a la suivante
Plus de sujets relatifs à [VBA+suppression conditionnelle de ligne]
 > Tous les forums > Forum Bureautique