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




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
Donc voila si quelqu'un sait comment faire ou à une idée pour contourner le problème je suis preneur!

Merci d'avance

Guillaume