Salut,
ayant oublié mes notions de VBA depuis pas mal d'années je sollicite
aimablement votre aide.
J'ai 1 tableau excel avec
1 colonne de chiffres de A1 à A10
1 plage de chiffres de C1 à E5
Je souhaite automatiser une tâche simple qui consiste à faire ça :
- Multiplier la plage C1 à E5 par A1
- Calculer la moyenne de la plage C1 à E5
- Mettre cette moyenne en B1
- Remettre la plage C1 à E5 comme elle était au début
- Recommencer avec cette fois A2
et recommencer ce processus jusqu'à A10...
A la fin je dois me retouver avec les moyennes successives en B1: B10
et ma plage C1 à E5 comme elle était au tout début.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Bonjour,
Une possibilité en supposant qu'il n'y a aucune cellule de la plage A1:A10 et C1:C5 n'est vide.
'--------------------------------------- Sub test()
Dim R As Variant, S As Variant Dim T(1 To 10), K(1 To 10) Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin With Worksheetss("Feuil1") R = .Range("A1:A10") S = .Range("C1:C5") End With
For a = 1 To UBound(R, 1) For b = 1 To UBound(S, 1) T(a) = T(a) + (R(a, 1) * S(b, 1)) Next K(a) = T(a) Erase T Next Application.ScreenUpdating = False Range("B1:B10") = Application.Transpose(K) Application.ScreenUpdating = True
Une possibilité en supposant qu'il n'y a aucune cellule de la plage
A1:A10 et C1:C5 n'est vide.
'---------------------------------------
Sub test()
Dim R As Variant, S As Variant
Dim T(1 To 10), K(1 To 10)
Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin
With Worksheetss("Feuil1") R = .Range("A1:A10")
S = .Range("C1:C5")
End With
For a = 1 To UBound(R, 1)
For b = 1 To UBound(S, 1)
T(a) = T(a) + (R(a, 1) * S(b, 1))
Next
K(a) = T(a)
Erase T
Next
Application.ScreenUpdating = False
Range("B1:B10") = Application.Transpose(K)
Application.ScreenUpdating = True
Une possibilité en supposant qu'il n'y a aucune cellule de la plage A1:A10 et C1:C5 n'est vide.
'--------------------------------------- Sub test()
Dim R As Variant, S As Variant Dim T(1 To 10), K(1 To 10) Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin With Worksheetss("Feuil1") R = .Range("A1:A10") S = .Range("C1:C5") End With
For a = 1 To UBound(R, 1) For b = 1 To UBound(S, 1) T(a) = T(a) + (R(a, 1) * S(b, 1)) Next K(a) = T(a) Erase T Next Application.ScreenUpdating = False Range("B1:B10") = Application.Transpose(K) Application.ScreenUpdating = True
Bonjour Peux-tu préciser à la noble assemblée l'étendue de la plage: C1:E5 comme tu l'écris ou C1:C5 comme l'a compris ton répondeur. lequel mentionnait, AMHA, qu' aucune cellule des plages A1:A10 et C1:C5 ne pouvait être vide.
Pour ce qui est de VBA, c'est comme le vélo, cela ne s'oublie pas. Tu peux te faire ta macro via l'enregistreur, puis adapter.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "MOUHOUBI" a écrit dans le message de groupe de discussion :
Salut, ayant oublié mes notions de VBA depuis pas mal d'années je sollicite aimablement votre aide.
J'ai 1 tableau excel avec 1 colonne de chiffres de A1 à A10 1 plage de chiffres de C1 à E5
Je souhaite automatiser une tâche simple qui consiste à faire ça : - Multiplier la plage C1 à E5 par A1 - Calculer la moyenne de la plage C1 à E5 - Mettre cette moyenne en B1 - Remettre la plage C1 à E5 comme elle était au début - Recommencer avec cette fois A2
et recommencer ce processus jusqu'à A10... A la fin je dois me retouver avec les moyennes successives en B1: B10 et ma plage C1 à E5 comme elle était au tout début.
Bonjour
Peux-tu préciser à la noble assemblée l'étendue de la plage:
C1:E5 comme tu l'écris ou C1:C5 comme l'a compris ton répondeur. lequel
mentionnait, AMHA, qu' aucune cellule des plages A1:A10 et C1:C5 ne pouvait
être vide.
Pour ce qui est de VBA, c'est comme le vélo, cela ne s'oublie pas.
Tu peux te faire ta macro via l'enregistreur, puis adapter.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"MOUHOUBI" a écrit dans le message de groupe de discussion :
v8sbm85a12qsej65u3gjv120pim7en30ud@4ax.com...
Salut,
ayant oublié mes notions de VBA depuis pas mal d'années je sollicite
aimablement votre aide.
J'ai 1 tableau excel avec
1 colonne de chiffres de A1 à A10
1 plage de chiffres de C1 à E5
Je souhaite automatiser une tâche simple qui consiste à faire ça :
- Multiplier la plage C1 à E5 par A1
- Calculer la moyenne de la plage C1 à E5
- Mettre cette moyenne en B1
- Remettre la plage C1 à E5 comme elle était au début
- Recommencer avec cette fois A2
et recommencer ce processus jusqu'à A10...
A la fin je dois me retouver avec les moyennes successives en B1: B10
et ma plage C1 à E5 comme elle était au tout début.
Bonjour Peux-tu préciser à la noble assemblée l'étendue de la plage: C1:E5 comme tu l'écris ou C1:C5 comme l'a compris ton répondeur. lequel mentionnait, AMHA, qu' aucune cellule des plages A1:A10 et C1:C5 ne pouvait être vide.
Pour ce qui est de VBA, c'est comme le vélo, cela ne s'oublie pas. Tu peux te faire ta macro via l'enregistreur, puis adapter.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme." "MOUHOUBI" a écrit dans le message de groupe de discussion :
Salut, ayant oublié mes notions de VBA depuis pas mal d'années je sollicite aimablement votre aide.
J'ai 1 tableau excel avec 1 colonne de chiffres de A1 à A10 1 plage de chiffres de C1 à E5
Je souhaite automatiser une tâche simple qui consiste à faire ça : - Multiplier la plage C1 à E5 par A1 - Calculer la moyenne de la plage C1 à E5 - Mettre cette moyenne en B1 - Remettre la plage C1 à E5 comme elle était au début - Recommencer avec cette fois A2
et recommencer ce processus jusqu'à A10... A la fin je dois me retouver avec les moyennes successives en B1: B10 et ma plage C1 à E5 comme elle était au tout début.
Dans les plages A1:A10 et C1:E5, il est supposé qu'il n'y a pas de cellules vides.
'-------------------------------- Sub test()
Dim R As Variant, S As Variant Dim T(1 To 10), K(1 To 10) Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin With Worksheets("Feuil1") R = .Range("A1:A10") S = .Range("C1:E5") End With
For a = 1 To UBound(R, 1) For b = 1 To UBound(S, 1) For C = 1 To UBound(S, 2) T(a) = T(a) + (R(a, 1) * S(b, C)) Next Next K(a) = T(a) Erase T Next Application.ScreenUpdating = False Range("B1:B10") = Application.Transpose(K) Application.ScreenUpdating = True
Dans les plages A1:A10 et C1:E5, il est supposé
qu'il n'y a pas de cellules vides.
'--------------------------------
Sub test()
Dim R As Variant, S As Variant
Dim T(1 To 10), K(1 To 10)
Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin
With Worksheets("Feuil1")
R = .Range("A1:A10")
S = .Range("C1:E5")
End With
For a = 1 To UBound(R, 1)
For b = 1 To UBound(S, 1)
For C = 1 To UBound(S, 2)
T(a) = T(a) + (R(a, 1) * S(b, C))
Next
Next
K(a) = T(a)
Erase T
Next
Application.ScreenUpdating = False
Range("B1:B10") = Application.Transpose(K)
Application.ScreenUpdating = True
Dans les plages A1:A10 et C1:E5, il est supposé qu'il n'y a pas de cellules vides.
'-------------------------------- Sub test()
Dim R As Variant, S As Variant Dim T(1 To 10), K(1 To 10) Dim a As Integer, b As Integer
'Nom de l'onglet de la feuille à adapter au besoin With Worksheets("Feuil1") R = .Range("A1:A10") S = .Range("C1:E5") End With
For a = 1 To UBound(R, 1) For b = 1 To UBound(S, 1) For C = 1 To UBound(S, 2) T(a) = T(a) + (R(a, 1) * S(b, C)) Next Next K(a) = T(a) Erase T Next Application.ScreenUpdating = False Range("B1:B10") = Application.Transpose(K) Application.ScreenUpdating = True