Formule avec variable

Bonjour,

Je ne parviens pas à insérer une formule dans une cellule à la fin de ma macro, car la formule doit contenir une variable.

Pour vous expliquer, j'ai une macro qui me permet de couper et coller une ligne de la feuille "TEST CR" à la feuille "ARCHIVE". En cas de besoin je dois pouvoir faire l'inverse, à savoir, renvoyer la ligne sélectionnée vers la feuille "TEST CR".

Mon problème concerne cette seconde macro. En copiant la ligne active de la feuille "ARCHIVE" à la feuille "TEST CR" (en utilisant une variable, pour la placer dès qu'une ligne vide se présente dans la feuille "TEST CR"), je souhaite inscrire une formule dans la colonne C de la ligne en question.

Voici mon code :

Sub Restaurer_Fiche()

If Sheets("Archive").Cells(ActiveCell.Row, 1).Value = "" Then
MsgBox "Merci de selectionner une ligne à restaurer"
Else

If MsgBox("voulez-vous restaurer la fiche ?", vbYesNo, "Restaurer fiche") = vbYes Then

u = 3
While Sheets("Test CR").Cells(u, 1) <> ""
u = u + 1
Wend

Rows(ActiveCell.Row).Select
Selection.Copy

Sheets("Test CR").Select
Cells(u, 1).Select
ActiveSheet.Paste

Sheets("Archive").Activate
Selection.Delete
Sheets("Test CR").Cells(u, 3).ClearContents
Sheets("Test CR").Cells(u, 3).FormulaLocal = "=SI($A15="";"";SI($B15="";$A15+15;$B15+15))"
End If
End If

End Sub

J'ai volontairement laissé la formule dans sa "forme de base", car je n'ai pas trouvé comment y mettre ma variable.

Sheets("Test CR").Cells(u, 3).FormulaLocal = "=SI($A15="";"";SI($B15="";$A15+15;$B15+15))"

Il faudrait que A15 devienne (u,1) et B15 (u,2). Du style :

Sheets("Test CR").Cells(u, 3).FormulaLocal = "=SI(cells(u, 1)="";"";SI(cells(u, 2)="";cells(u,1)+15;cells(u, 2)+15))"

J'espère être assez clair pour que quelqu'un m'apporte de l'aide =)

Merci par avance,

BOB

Salut Bob,

Un exemple d'une addition avec condition en formulalocal.

Dim u As Byte

u = 3
[A1].FormulaLocal = "=SI($A" & u & "="""";"""";$A" & u & "+ $B" & u & ")"

A noter la gestion des guillemets quand on test si vide, on double

Merci ! je vais essayer en suivant ton aide =)

bonjour,

Franchement utiliser VBA pour reconstituer une formule c'est un peu idiot : En principe les utilisateurs de VBA cherchent plutôt à se débarrasser des formules !

Neuf fois sur dix les débutants qui posent ce genre de question sont complétement sur une autre planète...

Au lieu d'exposer de quelle mauvaise manière vous essayez de résoudre un problème, présentez juste le problème et on essaiera de vous dire comment le résoudre.

Bon évidemment quand on est le champion toutes catégories des sujets sans fichiers c'est pas simple, mébon si tu veux sortir un jour de tes sélect... selection et autres ActiveTruc ça serait bien que tu t'y mettes un peu...

A+

Bonsoir,

Franchement, prendre la peine de participer à un sujet pour avoir ce genre de propos... Bravo ! Mais en principe les gens comme vous sont suffisamment imbus pour se le permettre...

Neuf fois sur dix, les personnes qui rédigent ce genre de réponses ont une vie si malheureuse et ennuyante que j'en viens à avoir de la peine pour elles. Pour vous j'hésite encore...

Au lieu d'utiliser un tel ton, je vous invite à déballer vos problèmes à quelqu'un qui pourra vous aider... Cela vous permettra par la suite d'échanger avec les gens avec intelligence, respect, courtoisie, ... Bref vous en avez grand besoin !

En attendant, tout fonctionne ! Merci RAG02700, ton exemple m'a permis de rédiger mon code et cela fonctionne parfaitement =)

BOB

Rechercher des sujets similaires à "formule variable"