La multiplication de cellule variable d'une colonne par la valeur d'une cellule
Résolu
DEVPLUS
Messages postés
30
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
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!
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!
2 réponses
-
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.
-
-
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. -
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! -
Ben non toujours pas
Lit bien ceci
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code -
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
-
-
ben c'est toi qui à mis x dans le 2eme for, i aurait marché pareil
1- pourquoi nous avons utilisé 02 variables pour les mêmes lignes (i,x)
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 écritFor i = 19 To 118
pas 100
-
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
-
-