Bonjour, cela fait une semaine que j'essaye de me former au VBA avec les supports que je trouve sur internet, je suis vraiment débutant, et je me permets de poster car j'aurais besoins d'un peux d'aide, je vous explique mon problème:
J'ai un tableau ou je dois consigner certain renseignement lors de la réalisation de contrôle de dimensions, dans la colonne H de ce tableau j'ai insérer un choix de norme, si au premier contrôle cette norme est réglé sur NF par exemple, j'ai essayer de créer une macro qui me remplis certaines case pour chaque ligne de contrôle si on rentre une date, et qui inscrit aussi une valeur dans des cases plus loin dans mon tableau pour servir de mémorisation, en effet je souhaite que si lors du contrôle 1 la norme est NF, si 6 mois après on change de Normes dans la colonne H, il faut que le contrôle 2 se remplisse avec la nouvelle normes et que la valeurs précédemment rentrées dans le contrôles 1 ne bouge pas, sauf si on vide manuellement la mémoire correspondante (les cases du bout de mon tableau que j'ai nommé mémoire, an cas d'erreur).J'aurais aussi besoins que cette macro s’exécute lorsque l'on remplis une des cases de date du contrôle et à l'enregistrement du fichier, mais je n'y arrive pas malgré plusieurs essais.
Je vous faite une copie de mon code en dessous (je viens de voir qu'il ne fallait pas joindre de fichier), si une âme charitable veut bien m'aider ce serait sympa


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Sub Macro1()
'
' Macro1 Macro
' 
'Private NombreDeLigneDuTableau As Integer
'Private PremiereLigneDuTAbleau As Integer
NombreDeLigneDuTableau = Sheets("VP 2017").Range("BC1").Value 
PremiereLigneDuTableau = Sheets("VP 2017").Range("BC2").Value 
For i = PremiereLigneDuTableau To PremiereLigneDuTableau + NombreDeLigneDuTableau
If Not IsEmpty(Cells(i, 16)) Then 
Cells(i, 56) = 1 
End If
If Not IsEmpty(Cells(i, 22)) Then 
Cells(i, 57) = 1 
End If
If Not IsEmpty(Cells(i, 28)) Then 
Cells(i, 58) = 1 
End If
If Not IsEmpty(Cells(i, 34)) Then 
Cells(i, 59) = 1 
End If
If Not IsEmpty(Cells(i, 40)) Then 
Cells(i, 60) = 1 
End If
If Not IsEmpty(Cells(i, 46)) Then 
Cells(i, 61) = 1 
End If
If Cells(i, 56) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 19) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False) 
End With
Cells(i, 56) = 2 
Else
GoTo Li35 
End If
If Cells(i, 57) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 25) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False) 
End With
Cells(i, 57) = 2 
Else
GoTo Li43 
End If
If Cells(i, 58) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 31) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False) 
End With
Cells(i, 58) = 2 
Else
GoTo Li51 
End If
If Cells(i, 59) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 37) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False) 
End With
Cells(i, 59) = 2 
Else
GoTo Li59 
End If
If Cells(i, 60) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 43) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False)
End With
Cells(i, 60) = 2 
Else
GoTo Li67 
End If
If Cells(i, 61) = 1 Then 
With Sheets("VP 2017") 
.Cells(i, 49) = Application.WorksheetFunction.VLookup(Cells(i, 8), Sheets("VP 2017").Range("BW5:BX7"), 2, False) 
End With
Cells(i, 61) = 2 
Else
GoTo Li75 
End If
Next
End Sub