Retranscrire une formule sous VBA

Bonjour, je suis un débutant en vba et au cours d'un projet, je dois créer un bouton "ok" sur mon userform. Ce bouton est supposé retranscrire les éléments que j'ai écris, ce que je suis arrivé à faire. Mais maintenant, j'aimerais que pour un textbox précis ("variant"), il ne retranscrit pas ce qui est écrit mais qu'elle transcrit une formule

Je ne sais pas si c'est possible de faire mais je ne peux que m'en remettre à la communauté.

Merci d'avance!

Cordialement.

kirin2468

Bonjour

D'abord évite de donner des noms à ta texte qui correspondent à des instructions ou variable qu'excel utilise.

Si je comprends bien ta textbox est nommée "variant" ??? A éviter à tout prix

ne retranscrit pas ce qui est écrit mais qu'elle transcrit une formule de calc :

C'est le résultat de la formule que tu veux là ?

Le mieux serait de voir ton fichier avec données non confidentielles

Amicalement

Merci pour ta réponse rapide.

Donc si j'ai bien compris, je dois définir une fonction (par ex: a) avec la formule?

EDit: Voila j'ai réussis à implanter ma formule mais maintenant, le seul problème est que la variable du critère ne varie pas en fonction de la ligne donné.

Ce que je veux dire, c'est que A2 reste figée... J'aimerais qu'il saute en fonction

Merci en espérant une solution.

re,

A titre d'exemple, dans ton fichier en G4 et G5, tu devrais avoir quoi comme valeur ?

Merci Dan, c'est vrai que je devrais donner un exemple.

A titre d'exemple, sur la page produits, en G5, je devrai avoir 0 car je n'ai pas créé de "quantité" pour le "numréf" = 3

et en G6 pour le numréf 4, ca devrait etre 50.

Le problème vient du fait que le critère de référence, ne saute pas tout seul

J'ai changé un peu le document peut être que ca sera plus claire...

-- 13 Mai 2011, 12:31 --

Ah c'est bon, j'ai enfin trouvé le problème..

Merci à Dan, qui m'a guidé

Re,

Ton code à modifier

Private Sub ok_Click()
Dim i As Integer
i = ThisWorkbook.Sheets("Produits").Range("A" & Rows.Count).End(xlUp).Row
If numréf.Value = "" Then
MsgBox " Vous n'avez mentionnez aucun num réf "
Else
With ThisWorkbook.Sheets("Produits")
    .Cells(i, 1) = numréf
    .Cells(i, 2) = nom
    .Cells(i, 3) = lieu
    .Cells(i, 4) = prix.Value
    .Cells(i, 5) = nombre.Value
    .Cells(i, 6) = délaideréapp
    .Cells(i, 7).FormulaLocal = "=SOMME.SI(AVA!$B$2:$B$16;Produits!$A" & i & ";AVA!$D$2:$D$16)-SOMME.SI(Aka!$B$2:$B$18;$A" & i & ";Aka!$D$2:$D$18)"
End With
MsgBox "Opération effectuée"
End If
End Sub

Amicalement

Merci bien Dan!

-- 13 Mai 2011, 14:09 --

Rebonjour,

En fait, j'ai encore un autre problème. Et vu qu'il s'agit toujours un problème d'implantation formule excel sous Vba. J'ai trouvé plus adapter de rouvrir mon sujet.

Cette fois-ci, j'aimerai implanter une fonction excel "=SI". Mais vba me dit qu'il y a une erreur de syntaxe...

Le but de ma fonction est de comparé la colonne vava et nombre. Si vava < nombre alors il y a un message qui se rajoute en fin de ligne.

J'espère que vous sauriez m'aider et merci d'avance !

15classeur1.xlsm (20.52 Ko)

re,

Cela sert à quoi de te proposer quelque chose si tu remets un fichier en ligne avec ton premier code ...

Pas besoin de formule, dans le code que je t'ai proposé, ajoute ceci avant le END WITH

If .Cells(i, 7) < .Cells(i, 5) Then .Cells(i, 8) = "vava plus petit que nombre"

Amicalement

Je viens de l'essayer mais ca ne fonctionne pas...

J'ai mis une formule car je pourrais changer les données sans passer par l'userform...

Finalement, je suis arrivé ! Merci Dan !

Rechercher des sujets similaires à "retranscrire formule vba"