Ecrire une formule avec "" via une macro
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 :roll:
Code:
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