Aide VBA
Le
MOUHOUBI

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.
Merci de votre aide.
--
Mon Blog : http://k.mouhoubi.free.fr/monblog/
Mon Twitt : http://twitter.com/kmouhoubi
Facebook : https://www.facebook.com/kmouhoubi
___________________________
/ )| MOUHOUBI Kamel |(
/ / | kmouhoubi@hotmail.com |
_( (_ | PGP Key ID 0xBAC2CA5B | _) )_
((( )|_/ )___________________( _|(/ /)))
(\\ _/ / _/ ////)
/ /
_/ _ /
/ /
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.
Merci de votre aide.
--
Mon Blog : http://k.mouhoubi.free.fr/monblog/
Mon Twitt : http://twitter.com/kmouhoubi
Facebook : https://www.facebook.com/kmouhoubi
___________________________
/ )| MOUHOUBI Kamel |(
/ / | kmouhoubi@hotmail.com |
_( (_ | PGP Key ID 0xBAC2CA5B | _) )_
((( )|_/ )___________________( _|(/ /)))
(\\ _/ / _/ ////)
/ /
_/ _ /
/ /
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
End Sub
'---------------------------------------
MichD
---------------------------------------------------------------
Merci de la réponse mais je comprends pas ce que tu veux dire.
--
Mon Blog : http://k.mouhoubi.free.fr/monblog/
Mon Twitt : http://twitter.com/kmouhoubi
Facebook : https://www.facebook.com/kmouhoubi
___________________________
/ )| MOUHOUBI Kamel |(
/ / | |
_( (_ | PGP Key ID 0xBAC2CA5B | _) )_
((( )|_/ )___________________( _|(/ /)))
(\\ _/ / _/ ////)
/ /
_/ _ /
/ /
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.
Merci de votre aide.
--
Mon Blog : http://k.mouhoubi.free.fr/monblog/
Mon Twitt : http://twitter.com/kmouhoubi
Facebook : https://www.facebook.com/kmouhoubi
___________________________
/ )| MOUHOUBI Kamel |(
/ / | |
_( (_ | PGP Key ID 0xBAC2CA5B | _) )_
((( )|_/ )___________________( _|(/ /)))
(\\ _/ / _/ ////)
/ /
_/ _ /
/ /
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
End Sub
'---------------------------------------
MichD
---------------------------------------------------------------