Bonjour à tous,

Je viens vers vous car j'ai créé un code VBA pour effectuer une action. Il fonctionne sur le principe, mais il est hyper lourd !
Je répète du code à bloc, alors qu'avec une boucle je pense que se serait plus léger !!
Mais voila, je galère avec les boucles !!!

Pourriez vous m'aider !

L'explication du code est simple, il regarde sur un onglet ("Casiersafermer") la plage F15 à F18 ( y a des références dans cette plage, style HB1, HB2, ect...) et regarde dans un autre onglet ("BasedeDonnées") qui est ma BDD, s'il voit une référence qui se trouve dans ma plage F15 à F18 du premier onglet, il doit l'effacer dans ma base de donnée.

Pour Infos Sur ma BDD, les références se trouve en colonne 17.
A titre d'info puisque je ne maitrise pas la fonction clear, j'ai "triché" en allant copier une cellule déjà vide la A1 de l'onglet "Casiersafermer"

Voici le code dégueulasse que j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Sub miseàjourVest()
Dim F1 As Worksheet
Dim F2 As Worksheet
Set F1 = Sheets("BasedeDonnées")
Set F2 = Sheets("Casiersafermer")
Dim plage As Range
Set plage = F1.Range("Q3:Q800")
codrecherché = F2.Range("F15").Value
Application.ScreenUpdating = False
For Each cell In plage
 If cell.Value = codrecherché Then
    F1.Cells(cell.Row, 17) = F2.Range("A1")
End If
    Next cell
codrecherché = F2.Range("F16").Value
Application.ScreenUpdating = False
For Each cell In plage
 If cell.Value = codrecherché Then
    F1.Cells(cell.Row, 17) = F2.Range("A1")
End If
    Next cell
codrecherché = F2.Range("F17").Value
Application.ScreenUpdating = False
For Each cell In plage
 If cell.Value = codrecherché Then
    F1.Cells(cell.Row, 17) = F2.Range("A1")
End If
    Next cell
codrecherché = F2.Range("F18").Value
Application.ScreenUpdating = False
For Each cell In plage
 If cell.Value = codrecherché Then
    F1.Cells(cell.Row, 17) = F2.Range("A1")
End If
    Next cell
Application.ScreenUpdating = True
End Sub

Désolé de vous montrer ce code les gars !!! J'ai honte !!!!

En vous remerciant d'avance.

Bonne journée à tous...

Cordialement,