Bonjour à tous,
Alors j'ai une petite question bien précise.
J'ai besoin via une macro (worksheet_change) d'écrire une formule dans la cellule modifiée.
Tout fonctionne parfaitement sauf lorsque j'ai besoin de mettre des " " dans la formule. Est-ce que c'est possible ou pas?
Je joins le code et le problème se situe dans le second ElseIf, ligne avec écrit PROBLEME
Donc voila si quelqu'un sait comment faire ou à une idée pour contourner le problème je suis preneur!
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
78
79
80
81
82
83 Private Sub Worksheet_Change(ByVal Target As Range) 'Se lance à chaque modification de la feuille 'Déclaration des variables Dim Valeur As String Dim Ligne As Integer Dim Formule As String Dim i As Integer Dim J As Integer 'On récupère le numéro de ligne et la valeur rentrée dans la cellule modifiée On Error GoTo 1 Ligne = Target.Row Valeur = Target.Value 'Si la valeur vaut 0 on sort de la macro If Valeur = 0 Then Exit Sub Else 'Sinon on va réaliser une boucle pour savoir si la case modifiée fait parti de celles qui nous intéressent 'Premiere Ligne à traiter J = 6 i = 5 Do While J < 50000 'Jusqu'a la ligne 50000 If Ligne < i Then 'Si la ligne a déja été dépassée on sort de la macro Exit Do ElseIf Ligne = J Then 'Si on est sur la bonne ligne 'Et entre les colonnes L à IV If Not Application.Intersect(Target, Range("L" & J & ":IV" & J)) Is Nothing Then 'on entre la formule correspondante Formule = "=IF(C" & Ligne & "=0, 0 ," & Valeur & " )" Target.Formula = Formule Exit Sub Else: Exit Sub End If ElseIf Ligne = i Then If Not Application.Intersect(Target, Range("L" & i & ":IV" & i)) Is Nothing Then Formule = "=IF(C" & Ligne & "="0'"" & ", 0 ," & Valeur & " )" 'PROBLEME ICI JE NE PEUX L'ECRIRE COMME CE Target.Formula = Formule Exit Sub End If Else: 'Sinon on boucle toutes les trois lignes J = J + 3 i = i + 3 End If Loop End If 1: Exit Sub End Sub
Merci d'avance
Guillaume
Partager