effacer element dans colonne

S

sarah

Guest
Bonjour!

J'ai une question:

Je dois supprimer dans une colonne toute les cellules avec un zero ou vide et effacer la ligne correspondante.

Si qq'un connait une macro?

Merci de votre aide
 
F

Fréd

Guest
Bonjour Sarah,
Est-il besoin de passer par une macro ? En sélectionnant ton tableau tu vas dans le menu Données/Formulaires (ou grille selon ta version) tu cliques sur Critères et tu saisis le 0 dans la zone concernée. Ensuite tu cliques sur suivant et cela t'affiche la première ligne qui répond à ton critère. Tu peux le supprimé et le suivant est affiché.
Espérant que cela va te suffire.
Cordialement
Fréd
 
G

Gérard DEZAMIS

Guest
Bonjour Sarah et Fred,

un bouton avec commandclick contenant :

Sub Vider_zero_et_vides()
Dim i As Integer
For i = Range("a1000").End(xlUp).Row To 2 Step -1
If Range("a" & i) = "" Or Range("a" & i) = 0 Then
Range("a" & i).EntireRow.Delete
End If
Next
End Sub

J'ai mis A100 mais tu peux modifier le longuer de ta plage. Le mieux est encore de la nommer.
J'ai mis To 2 en partant du principe que la ligne 1 contient les titres, donc on remonte jusqu'à la ligne 2

Regarde si cela peut te convenir

@+ GD
 
R

Roger

Guest
Bonjour.

Ce n'est que la deuxième fois que je viens sur ce forum qui est vraiment extraordinaire!
Encore une fois félicitation aux personnes qui le gèrent.


Gerard, je vois ton message qui m'intéresse car je suis à la recherche d'une macro similaire à celle de Sarah.
Il me faut, dans un tableau qui va de A5 à I87, supprimer les lignes, dont la cellule de la colonne E ne comporte pas une certain contenu texte que l'on nommera "Toto". Pour cela, je compte m'aider de ta macro, mais je voudrais bien la comprendre (je ne suis pas un expert en VBA)

"For i = Range("a1000").End(xlUp).Row To 2 Step -1"
veut dire (si je ne me trompe pas) que tu parcours le tableau de la ligne 1000 à la ligne 2, ligne par ligne

"If Range("a" & i) = "" Or Range("a" & i) = 0 Then"
Ici je ne comprends pas très bien. Est-ce que cela veut dire que si la cellule de la colonne A est vide ou =0, Then... ?
Ou alors que veut dire exactement "a"&i ?

"Range("a" & i).EntireRow.Delete"
Ici je pense que cela veut dire que si la cellule de la colonne A correspond au critère on l'efface ?

Si j'ai bien compris cela, je vais essayer de l'extrapoler à mon problème. Sinon, pourrais-tu me dire si je me trompe?

Merci d'avance

Roger
 
J

Jeannot45

Guest
Salut Roger,

Je prends le fil au passage.
Tu as pour ainsi dire tout compris, seulement un petit plus:
Range("A" & i) s'appelle un concaténation. par ce procédé, il reconstitue l'adresse de la cellule ainsi si i=15 alors le résultat de Range("A" & i) donne Range("A15")

si je ne suis pas assez clair redemande

Jeannot
 
R

Roger

Guest
Bonjour Jeannot, et merci pour tes informations.

Il est vrai que je n'avais pas fait attention au signe "&".

Je crois que j'ai maintenant compris correctement la syntaxe. Je me retrousse les manches et j'essaie de l'appliquer à mon cas.

Encore merci et bonne journée

Roger
 

Discussions similaires

Réponses
17
Affichages
443

Statistiques des forums

Discussions
312 211
Messages
2 086 300
Membres
103 173
dernier inscrit
Cerba95