Problem avec Application.Worksheet.Product et Range (offset, offset) !

vadius

XLDnaute Nouveau
Bonjour tout le monde,

Je galere depuis un moment sur le code suivant.

J'essaie de creer une macro qui calcule le produit de trois cellules et le resultat s'affiche dans la cellule adjacente (la quatrieme cellule sur la ligne, les trois cellules precedentes contenant les donnees dont je fais le produit).

Je dois effectuer ce calcul pour toutes les lignes du tableau.

Ensuite je veux que la macro fasse la meme chose, pour toutes les 4 colonnes. Car j ai plusieurs jeux de 3 colonnes dont je souhaite calculer le produit.

J'aiu code la macro suivante mais j'obtiens une erreur avec le Range
"Method 'Range' of object'_Global' failed"

Est ce que qqun a une idee ?

Merci bcp

Code:
Sub product()

Dim i, j As Integer
Dim n As Variant

Set plage = Worksheets("SMI_Ranking").Range(Cells(2, 5), Cells(2, 5).End(xlDown))
'compte le nombre de cellules de la plage
n = WorksheetFunction.Count(plage)

For j = 5 To 81 Step 4

     For i = 2 To n
     'try to calculate the product column b * column b * column c for each row
     
      With Range(Cells(i, j), Cells(i, j))
      .Value = Application.WorksheetFunction.product(Range(.Offset(, -3)), (.Offset(, -1)))
    End With

Next i
Next j

     
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Problem avec Application.Worksheet.Product et Range (offset, offset) !

Bonjour,

essaye peut être ceci, non testé..;
Code:
Cells(i, j).Value = Application.WorksheetFunction.Product(Cells(i, j).Offset(, -3).Resize(1, 3))

bon après midi
@+
 

vadius

XLDnaute Nouveau
Re : Problem avec Application.Worksheet.Product et Range (offset, offset) !

Bonjour Pierro

Merci mais helas ca ne fonctionne pas. Il jumpe directement au next j

Ci dessous le code

Code:
Sub product()

Dim i, j As Integer
Dim n As Variant

Set plage = Worksheets("SMI_Ranking").Range(Cells(2, 5), Cells(2, 5).End(xlDown))
'compte le nombre de cellules de la plage
n = WorksheetFunction.Count(plage)

For j = 5 To 81 Step 4

     For i = 2 To n
     'try to calculate the product column b * column b * column c for each row
     
     Cells(i, j).Value = Application.WorksheetFunction.product(Cells(i, j).Offset(, -3).Resize(1, 3))
    Next i
Next j

     
End Sub

/[CODE]
 

Pierrot93

XLDnaute Barbatruc
Re : Problem avec Application.Worksheet.Product et Range (offset, offset) !

Re,

tu n'as plus le message d'erreur donc ?? on avance... un petit fichier avec une poignée de données permettant de reproduire le problème, nous aiderait à t'aider...
 

JNP

XLDnaute Barbatruc
Re : Problem avec Application.Worksheet.Product et Range (offset, offset) !

Bonjour le fil :),
A tester
Code:
Sub product()
Dim Plage As Range
Dim i, j As Integer
Dim n As Variant
With Worksheets("SMI_Ranking")
    Set Plage = .Range("E2:E" & .Range("E2").End(xlDown).Row)
    'compte le nombre de cellules de la plage
    n = Plage.Count
    For j = 5 To 81 Step 4
        For i = 2 To n
        'try to calculate the product column b * column b * column c for each row
            With .Cells(i, j)
                .Value = Application.WorksheetFunction.product(Range(.Offset(, -3), .Offset(, -1)))
            End With
        Next i
    Next j
End With
End Sub
Bonne journée :cool:
 

Staple1600

XLDnaute Barbatruc
Re : Problem avec Application.Worksheet.Product et Range (offset, offset) !

Bonsoir le fil

Mon interprétation de la question ( il faudra adapter la plage)
Code:
Sub a()
Dim i&, j&
Application.ScreenUpdating = False
For i = 1 To [counta(a:a)]
    For j = 4 To 81 Step 4
        With Cells(i, j)
            .FormulaR1C1 = "=RC[-3]*RC[-2]*RC[-1]"
            .Value = .Value
        End With
    Next j
Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia