La multiplication de cellule variable d'une colonne par la valeur d'une cellule

Résolu/Fermé
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018 - 14 nov. 2018 à 18:44
 Utilisateur anonyme - 17 nov. 2018 à 19:05
Bonjour cher forum,

Je rame sur le problème suivant :

Mon code est le suivant :
Sub calcul()
Dim sh As Worksheet

Set sh = Worksheets("Info")
sh.Activate
Dim i As Integer
dim j as integer
For i = 1 To 100
For j =
 1 To 1


While sh.Cells((i + 18), 2) <> ""
If sh.Cells((i + 18), 5).Value & sh.Cells((i + 18), 6).Value <> "" Then
sh.Cells((i + 18), 7).Value = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 6).Value
sh.Cells((i + 18), 8) = sh.Cells((i + 18), 6).Value * sh.Cells(12, 10).Value
sh.Cells((i + 18), 9) = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 8).Value
sh.Cells(19, 18) = Application.WorksheetFunction.Sum(sh.Range("i19:i400"))
sh.Cells(20, 18) = Application.WorksheetFunction.Sum(sh.Range("c14,c15,c16,f11,f12,f13,f15,f16,j14,j15,j16,t22"))
' calcul du coefficient
sh.Cells(21, 18).Value = "=R[-1]C[0]/R[-2]C[0]"


sh.Cells((i + 18), 17).Value = sh.Cells((i + 18), 8).Value * sh.Cells(21, 18).Value


End If
i = i + 1
Wend
Next j
Next i

End Sub
Je voudrais que dans la cellule Q
(i+18), la formule entrée soit H(i+18)*(R21)

Évidemment, cela ne fonctionne pas.. j'ai fait plusieurs recherches sur ce forum et sur google mais en vain.. Je me résout à demander votre aide..

merci!





A voir également:

2 réponses

Utilisateur anonyme
14 nov. 2018 à 21:00
Bonsoir

tu apprécies que des bénévoles te répondent et résolvent tes problèmes.
Poster un code avec la coloration syntaxique facilite la lecture et donc la vie des bénévoles qui t'aident.
Dans ton dernier post il y a à peine quelques jours https://forums.commentcamarche.net/forum/affich-35661625-rechercher-une-reference-a-partir-de-textbox#1 , yg_be te l'as encore rappelé, et pourtant, encore une fois tu n'as pas fait l'effort.... Tu vas te contenter t'attendre qu'un modérateur édite ton message pour toi.

Ben tu vois, ça ne me donne pas envie de t'aider.
0
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018
14 nov. 2018 à 23:14
Je vois que tu n'as pas bien suivi cette discussion, car ce que j'ai mis fonctionner bien, j'ai demandé de réduire le code que j'ai posté, et la proposition de yg_be ne fonctionner pas comme le code que j'ai mis,
0
Utilisateur anonyme
15 nov. 2018 à 07:26
Peu importe ce que tu demandes, ton code n'est pas lisible, à chacune de tes questions, au moins une fois il t'es demandé d'utiliser la coloration syntaxique (tu trouveras le lien vers la procédure d'utilisation dans chacune des tes discussion précédente).
Puisque tu ne fais pas l'effort de rendre ton code présentable, pourquoi nous ferions l'effort de t'aider bénévolement.
0
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018
15 nov. 2018 à 09:14
Désolé, je coroyais l'avoir fait



Mon code est le suivant :
Sub calcul()
Dim sh As Worksheet

Set sh = Worksheets("Info")
sh.Activate
Dim i As Integer
dim j as integer
For i = 1 To 100
For j = 1 To 1

While sh.Cells((i + 18), 2) <> ""
If sh.Cells((i + 18), 5).Value & sh.Cells((i + 18), 6).Value <> "" Then
sh.Cells((i + 18), 7).Value = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 6).Value
sh.Cells((i + 18), 8) = sh.Cells((i + 18), 6).Value * sh.Cells(12, 10).Value
sh.Cells((i + 18), 9) = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 8).Value
sh.Cells(19, 18) = Application.WorksheetFunction.Sum(sh.Range("i19:i400"))
sh.Cells(20, 18) = Application.WorksheetFunction.Sum(sh.Range("c14,c15,c16,f11,f12,f13,f15,f16,j14,j15,j16,t22"))
' calcul du coefficient
sh.Cells(21, 18).Value = "=R[-1]C[0]/R[-2]C[0]"


sh.Cells((i + 18), 17).Value = sh.Cells((i + 18), 8).Value * sh.Cells(21, 18).Value


End If
i = i + 1
Wend
Next j
Next i

End Sub
Je voudrais que dans la cellule Q(i+18), la formule entrée soit H(i+18)*(R21)
Évidemment, cela ne fonctionne pas.. j'ai fait plusieurs recherches sur ce forum et sur google mais en vain.. Je me résout à demander votre aide..

merci!
0
Utilisateur anonyme
15 nov. 2018 à 11:46
0
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018
15 nov. 2018 à 15:58
Sub calcul() 
Dim sh As Worksheet 

Set sh = Worksheets("Info") 
sh.Activate 
Dim i As Integer 
dim j as integer 
For i = 1 To 100 
For j = 1 To 1 

While sh.Cells((i + 18), 2) <> "" 
If sh.Cells((i + 18), 5).Value & sh.Cells((i + 18), 6).Value <> "" Then 
sh.Cells((i + 18), 7).Value = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 6).Value 
sh.Cells((i + 18), 8) = sh.Cells((i + 18), 6).Value * sh.Cells(12, 10).Value 
sh.Cells((i + 18), 9) = sh.Cells((i + 18), 5).Value * sh.Cells((i + 18), 8).Value 
sh.Cells(19, 18) = Application.WorksheetFunction.Sum(sh.Range("i19:i400")) 
sh.Cells(20, 18) = Application.WorksheetFunction.Sum(sh.Range("c14,c15,c16,f11,f12,f13,f15,f16,j14,j15,j16,t22")) 
' calcul du coefficient 
sh.Cells(21, 18).Value = "=R[-1]C[0]/R[-2]C[0]" 


sh.Cells((i + 18), 17).Value = sh.Cells((i + 18), 8).Value * sh.Cells(21, 18).Value 


End If 
i = i + 1 
Wend 
Next j 
Next i 

End Sub 
0
Utilisateur anonyme
17 nov. 2018 à 12:41

1- pourquoi nous avons utilisé 02 variables pour les mêmes lignes (i,x)
ben c'est toi qui à mis x dans le 2eme for, i aurait marché pareil

2-les colonnes sh.Cells(x, 17),sh.Cells(x, 10),sh.Cells(x, 11) sont rempli jusqu'à la ligne 100
2 fois (donc 3 maintenant) je t'ai écrit
For i = 19 To 118
pas 100
0
DEVPLUS Messages postés 28 Date d'inscription dimanche 30 octobre 2016 Statut Membre Dernière intervention 17 novembre 2018
17 nov. 2018 à 18:51
Merci Whismeril,
Maintenant l'operation fonctionne bien:
Dim x As Integer
For x = 19 To 100
If sh.Cells(x, 8) = "" Then
sh.Cells(x, 10) = ""
Else
If sh.Cells(x, 8) <> "" Then
sh.Cells(x, 17).Formula = sh.Cells(x, 8) * sh.Cells(21, 18)
sh.Cells(x, 10).Formula = sh.Cells(x, 8) + sh.Cells(19, 17)
sh.Cells(x, 11).Formula = sh.Cells(x, 10) * sh.Cells(19, 5)
End If
End If
Next x
End Sub
0
Utilisateur anonyme
Modifié le 17 nov. 2018 à 19:06
De rien

mais le for avec le x ne devrait il pas finir à 118 lui aussi?
0