Supprimer des lignes "conditions"

eillon

XLDnaute Junior
Voir exemple.

Lorsque je tris par code postal, je supprimes tous les départements qui ne me concerne pas pour les livraisons.
Je vous fais parvenir les départements que je veux conserver.

Il faudrait que toutes les lignes qui ne correspondent pas aux départements soient supprimer.

En clair si j'ai un code postal 83570 (colonne E) en ligne 175, supprimer ligne 175.

Liste des départements que je dois conserver :

02
08
10
14
18
21
22
27
28
29
35
36
37
41
44
45
49
50
51
52
53
54
55
56
57
58
59
60
61
62
67
68
70
72
75
76
77
78
79
80
85
86
88
89
90
91
92
93
94
95

Merci.
 

Pièces jointes

  • Exemple.xls
    13.5 KB · Affichages: 79
  • Exemple.xls
    13.5 KB · Affichages: 74
  • Exemple.xls
    13.5 KB · Affichages: 75

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Bonjour



A tester sur une copie de ton fichier

(Manque la gestion du 02 et du 08)
Code:
Sub test()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, 2)
Case Is <> 10, 14, 18, 21, 22, _
27 To 29, 35 To 37, 41, 44, 45, _
49 To 62, 67, 68, 70, 72, _
75 To 80, 85, 86, 88 To 95
cell.EntireRow.Delete
End Select
Next
 
Dernière édition:

eillon

XLDnaute Junior
Re : Supprimer des lignes "conditions"

Merci pour la réponse rapide, mais ça me supprime des lignes qui ne devrait pas l'être, et celle où j'ai mis un code postal en 05 il me la garde.

Si je met en condition :

02000 to 02999, 08000 to 08999 etc.. est-ce que ça peut marcher ?
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re
A part le 02 et le 08 la liste ci-dessous est correcte non?
Case Is <> 10, 14, 18, 21, 22, _
27 To 29, 35 To 37, 41, 44, 45, _
49 To 62, 67, 68, 70, 72, _
75 To 80, 85, 86, 88 To 95
Normalement cela devrait s'interpréter : est différent de (des nombres référencés)

alors

cell.EntireRow.Delete
'on supprime la ligne entière


Comme tu peux le lire on commence à 10

Car Left(Cell.value,2) donne deux caractères
Et si je saisis Case Is <> 02
Vbe transforme en 2

edit:Effectivement il y a des suppressions intempestives
je ne vois pas pourquoi pour le moment
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re


En prenant le problème dans l'autre sens
Code:
Sub testII()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, 2)
Case 11, 12 To 13, 15 To 17, 19 To 20, 23 To 26, 30 To 34, _
38 To 40, 42 To 43, 46 To 48, 63 To 66, 69, 71 To 74, _
81 To 84, 87
cell.EntireRow.Delete
End Select
Next
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re
Code:
Sub testII()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, 2)
Case 11, 12 To 13, 15 To 17, 19 To 20, 23 To 26, 30 To 34, _
38 To 40, 42 To 43, 46 To 48, 63 To 66, 69, 71 To 74, _
81 To 84, 87
[B]MsgBox cell.Address(0, 0)[/B]
'cell.EntireRow.Delete
End Select
Next
End Sub

Si je saisis 81600, cela me trouve la cellule correspondante non?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re

Le code doit etre dans un module standard

edit: tu as testé avec 81600? chez moi cela fonctionne

edit:
Si tu parles de mettre le code dans message "en bleu"

Il faut utiliser "["code"]" ton code "["/code"]"

(en supprimant tous les guillemets)
 
Dernière édition:

eillon

XLDnaute Junior
Re : Supprimer des lignes "conditions"

Si je fais ça, ça me supprime les bonnes lignes, mais j'aimerais rajouter pour les codes à 4 chiffres, où dois-je mettre le code ?

Code:
Sub testII()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, 5)
Case 11000 To 11999, 12000 To 12999, 13000 To 13999, _
15000 To 15999, 16000 To 16999, 17000 To 17999, 19000 To 19999, 20000 To 20999, 23000 To 23999, 26000 To 26999, _
30000 To 30999, 34000 To 34999, 38000 To 38999, 39000 To 39999, 40000 To 40999, 42000 To 42999, 43000 To 43999, _
46000 To 46999, 48000 To 48999, 63000 To 63999, 66000 To 66999, 69000 To 69999, 71000 To 71999, 74000 To 74999, _
81000 To 81999, 84000 To 84999, 87000 To 87999
cell.EntireRow.Delete
End Select
Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re

Pour quoi
Case 11000 To 11999, 12000 To 12999, 13000 To 13999
tu peux utiliser cela non
Case 11000 to 13999

Tu peux essayer cela (je n'ai pas teste)

Seletc Case Left(cell.Value, Len(cell.Value)
Case 11000 to...
cell.EntireRow.delete
Case 1111 to 'ici pour l'exemple
cell.entirerow.delete
End select
Next
 
Dernière édition:

eillon

XLDnaute Junior
Re : Supprimer des lignes "conditions"

je le tente comme ça mais il n'aime pas le "next" qui est à la fin.

Code:
Sub testII()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, 5)
Case 11000 To 11999, 12000 To 12999, 13000 To 13999, _
15000 To 15999, 16000 To 16999, 17000 To 17999, 19000 To 19999, 20000 To 20999, 23000 To 23999, 26000 To 26999, _
30000 To 30999, 34000 To 34999, 38000 To 38999, 39000 To 39999, 40000 To 40999, 42000 To 42999, 43000 To 43999, _
46000 To 46999, 48000 To 48999, 63000 To 63999, 66000 To 66999, 69000 To 69999, 71000 To 71999, 74000 To 74999, _
81000 To 81999, 84000 To 84999, 87000 To 87999
End Select
Next
Select Case Left(cell.Value, 4)
Case 1000 To 1999, 3000 To 3999, 4000 To 4999, 5000 To 5999, 6000 To 6999, 7000 To 7999
cell.EntireRow.Delete
End Select
[COLOR="Red"]Next[/COLOR]
End Sub
 

eillon

XLDnaute Junior
Re : Supprimer des lignes "conditions"

Je na connais pas le langage, je un peu au pif, pour le 12000 to 14999, je n'y ai pas pensé, je n'ai pas le réflexe.

Pour l'autre formule, je ne sais pas à quoi elle correspond.
Il faut que je me trouve un "dico vba" pour traduire toutes ces subtilités.
 

Staple1600

XLDnaute Barbatruc
Re : Supprimer des lignes "conditions"

Re

Est-ce que cela fonctionne?
Code:
Sub testIII()
Dim cell As Range
Dim derlig As Long
derlig = Range("E65536").End(xlUp).Row
For Each cell In Range("E2:E" & derlig)
Select Case Left(cell.Value, Len(cell))
Case 11000 To 11999, 12000 To 12999, 13000 To 13999, _
15000 To 15999, 16000 To 16999, 17000 To 17999, 19000 To 19999, 20000 To 20999, 23000 To 23999, 26000 To 26999, _
30000 To 30999, 34000 To 34999, 38000 To 38999, 39000 To 39999, 40000 To 40999, 42000 To 42999, 43000 To 43999, _
46000 To 46999, 48000 To 48999, 63000 To 63999, 66000 To 66999, 69000 To 69999, 71000 To 71999, 74000 To 74999, _
81000 To 81999, 84000 To 84999, 87000 To 87999
[B] cell.EntireRow.Delete[/B]
Case 1000 To 7999
cell.EntireRow.Delete
End Select
Next
End Sub
 
Dernière édition:

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 685
Messages
2 090 945
Membres
104 705
dernier inscrit
Mike72