> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Souris sans fil avec trackball Logitech Ergo M575S
37,99 € 54,99 € -31%
@Amazon
Casque Bluetooth sans Fil Ugreen HiTune Max 5C (ANC, 75 heures)
27,99 € 39,99 € -30%
@Amazon
Mini PC NiPoGi E2 Mini (Intel N150, 16 Go RAM, SSD 256 Go, Windows 11 Pro)
159,91 € 229,99 € -30%
@Amazon
Enduit de Lissage Mur Sader pot de 1.5 kg
3,45 € 7,90 € -56%
@Amazon
Meuleuse angulaire Bosch Professional GWS 7-125
51,99 € 60 € -13%
@Amazon
Liquide vaisselle l'Arbre Vert Amande Douce & Fleurs D'Abricotier 750 mL
1,75 € 2,35 € -26%
@Amazon

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