Fonction avec 2 variables?

Fonction avec 2 variables? - VB/VBA/VBS - Programmation

Marsh Posté le 09-09-2005 à 16:27:43    

Bonjour,
 
Sur une feuille excel je voudrai calculer un prix (colonne D) selon le produits (3 produits différents, colonneA) et la quantité achetée (colonne B). La colonne C indique le prix unitaire à appliquer. Exemple si j'achète 20 produits B le prix unitaitre appliqué sera 170 et le prix total 3400 (colonne D)
 
ColA       ColB       ColC           ColD
produit  quantité prix/Un       Prix
 
produit A    10    50
produit A    20    45
produit A    30    30
   
produit B    10    180
produit B    20    170
produit B    30    160
   
produit C    10    230
produit C    20    220
produit C    30    210
 
J'ai essayé avec Function et If  Then...
J'arrive à le faire pour un produit mais pas les trois en même temps.
 
Je suis débutant
Merci d'avance

Reply

Marsh Posté le 09-09-2005 à 16:27:43   

Reply

Marsh Posté le 10-09-2005 à 12:18:37    

Dans la colone D1 tu mets :
=B1*C1
ainsi de suite....
D2=B2*C2.....

Reply

Marsh Posté le 10-09-2005 à 12:45:43    

Dans un fonction :
 
Private Sub Workbook_Open()
 
Dim i As Integer        ' Indice de selection de ligne
Dim j As Integer        ' Nombre de ligne à passer
Dim MyLen As Integer    ' Longeur de i pour l'incrément de cellule
Dim Cell1, Cell2, Cell3 As String   ' Cellule A B C avec l'indice i
 
i = 1
j = 20
 
 
 
For i = 1 To j      ' De la cellule 1 à la cellule max
    If i > 9 Then   ' Si i > 9 fonction Right sur 2 caractères
        MyLen = 2
    Else
        MyLen = 1   ' Si i < 9 fonction Right sur 1 caractères
    End If
    Cell1 = "B" & Right(Str(i), MyLen)  ' Concaténation Right pour éviter un blanc entre B et i
    Cell2 = "C" & Right(Str(i), MyLen)  ' Concaténation Right pour éviter un blanc entre C et i
    Cell3 = "D" & Right(Str(i), MyLen)  ' Concaténation Right pour éviter un blanc entre D et i
    Range(Cell1).Select
     
    ' Si B n'est pas vide ou > à 0
    If Range(Cell1).Value <> "" And Range(Cell1).Value <> 0 Then
        ' on fait le calcule D=B*C
        Range(Cell3).Value = Range(Cell1).Value * Range(Cell2).Value
    End If
Next
End Sub
 
Voilà ! j'espère que ça t'ira !
 
@+
 

Reply

Marsh Posté le 10-09-2005 à 18:08:29    

merci
je fais le test et je te dirai
A+

Reply

Marsh Posté le 20-09-2005 à 01:08:25    

Plus "propre":

Private Sub Workbook_Open()
 
  Dim rRange As Range
  Dim vCell As Variant
   
  Set rRange = Range([B3], Cells(Cells.SpecialCells(xlLastCell).Row, 2))
   
  For Each vCell In rRange
       
    If Val(vCell) > 0 Then
      vCell.Offset(0, 2) = vCell * vCell.Offset(0, 1)
    End If
  Next vCell
 
End Sub


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed