Re : Besoin d'aide sur un Do...Loop
ok, je vais essayer d'être plus clair.
J'ai 4 checkbox, chacune étant associée a une ville différente. Lorsqu'on sélectionne une ville, le nom de la ville apparaît dans la cellule B5. C'est cette cellule qui sert de variable en fait.
Maintenant, j'ai une base de données, de 20 colonnes environ, et de 1200 lignes environ.
Le nom des villes apparait dans la colonne D.
Je souhaiterais maintenant que selon la ville que je coche (Montréal, Toronto, Ottawa NG, Edmonton), la macro supprime toutes lignes où le nom de la ville inscrit dans la colonne D est différent de la ville inscrite en B5, soit différent de la ville cochée.
Mon ancien code fonctionnait, mais uniquement pour extraire les données de Montréal. Mon code supprimait alors ville par ville Toronto, Edmonton et Ottawa NG
Aujourd'hui, je veux le modifier, pour le rendre plus dynamique, et applicable dans les autres bureaux.
Voici l'ancien code, avec une partie nécessaire pour supprimer d'autres lignes dont je n'ai pas besoin.
En bleu, c'est la partie sur laquelle je bloque.
Private Sub CommandButton3_Click()
Dim l As Long
For l = Cells.SpecialCells(xlCellTypeLastCell).Row To 10 Step -1
If Cells(l, "u").Value = "1A" Then Cells(l, 1).EntireRow.Delete
If Cells(l, "u").Value = "3" Then Cells(l, 1).EntireRow.Delete
Next l
Do
If Cells.Find(What:="Suggestion") Is Nothing Then
Exit Do
Else
Cells.Find(What:="Suggestion").Activate
Selection.EntireRow.Delete
End If
Loop
Do
If Cells.Find(What:="Toronto") Is Nothing Then
Exit Do
Else
Cells.Find(What:="Toronto").Activate
Selection.EntireRow.Delete
End If
Loop
Do
If Cells.Find(What:="Ottawa NG") Is Nothing Then
Exit Do
Else
Cells.Find(What:="Ottawa NG").Activate
Selection.EntireRow.Delete
End If
Loop
Do
If Cells.Find(What:="Edmonton") Is Nothing Then
Exit Do
Else
Cells.Find(What:="Edmonton").Activate
Selection.EntireRow.Delete
End If
Loop
Range("d:k,n:t").Delete
End sub