Convertir une fonction en macro

Fermé
Bouzi - 23 janv. 2013 à 19:30
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 23 janv. 2013 à 20:06
Je viens à vous car je suis en train de galérer en essayant de convertir en VBA la fourmule :
" =SI(R16>$R$1;R16-$R$1&" de Location depuis son entrée en Stock";SI(R16>=60;$R$1-R16&" avant de passer en location";0) " .
et celle ci : "=AUJOURDHUI()-G6"

je suis en train de creer un programme sous VBA qui me permettra d'avoir un suivi des bouteilles de gaz.

l'idée c'est de faire en sorte, qu'à la date ou chaque bouteille est saisie, qu'un décomptage se fasse en faisant la soustraction de la date d'aujoud'hui à celle de l'entrée en stock.
si l'écart est supérieur à 60 jour, qu'il commence à m'afficher un message me disant qu'il me reste XX jours avant que la bouteille ne passe en location, car la locatio sera de 3.30 par jour.
ou encore, ça fait XX jours que cette bouteille est passé en location.

sur un tableau normal, j'ai réussi à le faire d'où les formules ci dessus.
mais en prédéfinissant ces colonnes de ces fonctions, je me retrouve avec un fichier lourd qui rame.

alors je souhaiterais
qu'au moment ou je valide mon bouton, qu'une macro s'excute en donnant le même résultat que sur une normal

ci dessous le macro de mon bouton si ça peut aider

Private Sub CommandButton1_Click()
TBX1 = TextBox1.Value
TBX2 = TextBox2.Value
TBX3 = TextBox3.Value
TBX4 = TextBox4.Value
TBX5 = TextBox5.Value
TBX6 = TextBox6.Value
CBX1 = ComboBox1.Value
CBX2 = ComboBox2.Value
NBR_BOUT = TextBox9.Value

Msg1 = MsgBox("Saisissez Le Numéro De La Bouteille Suivante", vbYesNo + vbInformation, "Saisie des N° des Bouteilles")

Sheets("ENTREES & SORTIES DE BOUTEILLES").Select
Range("H3").Select
Range("P1").Value = TextBox5.Value

If Msg1 = vbYes Then TextBox5.Value = Worksheets("ENTREES & SORTIES DE BOUTEILLES").Range("P1").End(xlUp).Value - 1
Sheets("ENTREES & SORTIES DE BOUTEILLES").Select
Range("H3").Select

If Range("H4").Value <> "" Then Range("H3").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = TBX5
ActiveCell.Offset(0, -1).Value = TBX1
ActiveCell.Offset(0, -2).Value = CBX1
ActiveCell.Offset(0, -3).Value = "COMMANDE DE REAPPRO."
ActiveCell.Offset(0, -4).Value = "Aucun"
ActiveCell.Offset(0, -5).Value = "IRCAAT"
ActiveCell.Offset(0, -6).Value = TBX3
ActiveCell.Offset(0, -7).Value = TBX2
ActiveCell.Offset(0, 1).Value = 0
ActiveCell.Offset(0, 2).Value = CBX2
ActiveCell.Offset(0, 3).Value = TBX6
ActiveCell.Offset(0, 4).Value = 1
ActiveCell.Offset(0, 5).Value = 0
ActiveCell.Offset(0, 6).Value = ""

End Sub

Merci d'avance pour votre aide, en espérant que vous ayez la solution.

(Posté via Carrefour Multimedia)
A voir également:

1 réponse

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
23 janv. 2013 à 20:06
Bonjour,
Dans un premier temps..
Sub TR()
'" =SI(R16>$R$1;R16-$R$1&" de Location depuis son entrée en Stock";
'SI(R16>=60;$R$1-R16&" avant de passer en location";0) " .
'Ruposons la formule en B1
    If [R16] > [R1] Then
        [B1] = ([R1] - [R16]) & "de Location depuis son entrée en Stock"
    ElseIf [R16] >= 60 Then
        [B1] = ([R1] - [R16]) & " avant de passer en location"
    End If
        
'"=AUJOURDHUI()-G6"
    [B2] = Now - [G6]
End Sub

A+

0