supprimer champs nul

C

Christophe

Guest
Bonjour à tous

Il y a t-il moyen de supprimer les champs vides d'une liste articles

ex:

1
2
3
4
5
6

7
8
9

Il faudrait que la ligne comprise entre 6 et 7 soit supprimée




Merci de me répondre
 
L

LaurentTBT

Guest
Bonsoir.

Sélectionne la colonne contenant tes articles, puis:
Menu Edition, puis Atteindre
Clique sur le bouton "Cellules..."
Choisis "Cellules vides" puis OK
(les cellules vides sont sélectionnées)
Il suffit alors de faire:
Menu Edition, Supprimer, ligne entière.

En macro, tout ceci se résume à .... une seule ligne:

Sub SupprimerLignesVides()
Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Bonne nuit.

Laurent

PS: j'oubliais, si il y a des données sur la ligne, elles seront perdues.
 
R

rudy

Guest
bonsoir,Christophe,christ,laurentbt et forum

tu as aussi cette formule :

Sub DétruireLigne()
derniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = derniereLigne To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub

@+ rudy
 
C

Christophe

Guest
bonjour

je n'arrive pas à integrer vos solutions,je donne un exemple un peu plus clair.
Il faut supprimer les lignes ayant la cellule de la colonne 1 vides
ex: il faudrait que je puisse supprimer la ligne complete comprise entre jupiler N.A et carlsberg etc




JUPILER 25 0 100 150
JUPILER 33 0 100 200
HALF 0 100 150
MAZOUT 0 100 150
PANACHE 0 100 150
TANGO/PERROQUET 0 100 160
SCOTCH 0 100 200
BLANCHE 0 200 200
ROCHEFORT 10 0 200 250
JUPILER N.A 0 200 160
0 0 0
CARLSBERG 0 200 220
ORVAL 0 200 250
DUVEL 0 200 250
0 0 0
0 0 0
0 0 0
0 0 0
CAFE 0 300 150
DECAFEINE 0 300 160
CAPUCCINO 0 300 180
LAIT RUSSE 0 300 160
0 0 0
OXO 0 300 150
CECEMEL CHAUD 0 300 180
VIENNOIS 0 300 180
VIN CHAUD 0 300 180
SOUPE 0 300 180
TONIC 0 400 150




help me
 
L

LaurentTBT

Guest
Salut Christophe.

En fait, ce ne sont pas les cellules vides que tu veux supprimer, mais celles égales à 0.

Autre façon de voir les choses, comme ta première colonne comporte des noms, ce sont les valeurs numériques que tu veux supprimer.

La fonction Atteindre permet aussi de les selectionner:
1 - Manuellement: au lieu de choisir 3cellules vides", tu choisis "Constantes" et dans les cases sous "formules", tu ne sélectionnes que "Nombres". Le reste est identique.

2- par macro:
Sub SupprimerLignesVides()
Columns("A:A").SpecialCells(xlCellTypeConstants, 1).EntireRow.Delete
End Sub

Voilà, cette fois, ce devrait être bon.

Bon dimanche.
Laurent.
 
L

LaurentTBT

Guest
Oups, j'avais pas vu ton fichier.

En fait, ce ne sont ni des cellules vides, ni des 0, mais des cellules remplies de " " (x espaces)

Voilà une nouvelle macro:

Sub supprimerLignesVides()
Dim Cellule As Range
Dim i As Integer
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Range("A1").Cells(i, 1) = " " Then Range("A1").Cells(i, 1).EntireRow.Delete
Next i
End Sub

Cette fois, ça marche!
@+, Laurent.
 
L

LaurentTBT

Guest
Oups, décidemment, c'est pas mon jour!
Déjà que je réponds de travers à un autre fil, là je copie à moitié le code!
Je vais finir par te devoir ... une bière!

En fait, tes cellules contiennent 24 espaces.
Il faut remplacer
If Range("A1").Cells(i, 1) = " " ...
par
If Range("A1").Cells(i, 1) = " " ... (vérifie bien qu'il y a 24 espaces)

Cette fois, je ne vais pas dire "Cette fois, ça marche!". Je vais attendre d'avoir tué l'ours avant de vendre sa peau!

Sinon, tes données comportent toutes 24 caractères.
Ainsi, "JUPILER" est en fait "JUPILER " (chaque chaîne de caractères est complétée par des espaces pour arriver à 24 caractères au total). Tes données sont sans doute importées d'une source qui ne connait que des chaînes de 24 caractères!

J'espère que cette fois, c'est la der

Laurent.
 

Discussions similaires

Réponses
10
Affichages
357
Réponses
5
Affichages
266

Statistiques des forums

Discussions
312 490
Messages
2 088 881
Membres
103 981
dernier inscrit
vinsalcatraz