> 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
Ecran PC 27 pouces KTC H27V13 (VA, Full HD, 100 Hz) à 99,99 €
99,99 € 149 € -33%
@Geekbuying
Batterie portable Ugreen Nexode 140W 25 000 mAh (1xUSB C 100W PD, 1x USB C 45W PD, 1xUSB A 18W) à 84,99 €
84,99 € 119,99 € -29%
@Amazon
Vidéo projecteur WANBO Mini (HD 720, 250 ANSI) à 55,99 €
55,99 € 79 € -29%
@Geekbuying
VTT électrique DUOTTS C29 (29 pouces, 750W, freins à disque, Shimano 21 vitesses, 100 km) à 735 €
735 € 899 € -18%
@Geekbuying
Ordinateur portable Lenovo Ideapad 5 Pro (14 pouces 2K OLED 120 Hz, Ryzen 7 8845HS, 32 Go RAM DDR5, SSD 1 To, Radeon 780M) à 794,26 €
794,26 € 1169 € -32%
@Lenovo
Mini PC Beelink Mini S12 Pro (Intel Alder Lake N100, 16 Go RAM, SSD 500 Go, WiFi6/BT 5.2, Windows 11 Pro) à 144 €
144 € 249 € -42%
@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