Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2011, 23h20   #1
Invité de passage
 
Inscription : mai 2008
Messages : 27
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 27
Points : 3
Points : 3
Par défaut probleme de calcul en code VBA

Bonsoir
J’ai realisé une macro et je souhaiterais calculer mon chiffre d’affaires désaisonnalisé colonne H en fonction des coefficients trimestriels, T1 T2 T3 et T4 afin d’obtenir les résultats suivants, mais en vain je n’arrive pas à trouver la solution en VBA.
Colonne K
T1 k7 = 0,864
T2 K8= 1,501
T3 K9= 1,249
T4 K10= 0,386

Le calcul avec excel est le suivant :
=B2/K7
=B3/K8
=B4/K9
=B5/K10

=B6/K7
=B7/K8
=B8/K9
=B9/K10

….


xi yi Chiffre d'affaires désaisonnalisé
1 240 278
2 420 280
3 370 296
4 110 285
5 250 289
6 440 293
7 360 288
8 115 298
9 270 312
10 480 320
11 400 320
12 130 337

Merci pour votre aide
Bien cordialement


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Sub calCoeff()
 
    Dim i As Integer
    Dim DerLig As Long
    Dim Serie_Y As Variant, Serie_X As Variant
 
    With Worksheets("Moyenne_Mobile")
        DerLig = .Range("A" & .Rows.Count).End(xlUp).Row
 
        For i = 2 To DerLig - 2
            .Cells(i + 1, 3).Value = Application.WorksheetFunction.Average(.Range(.Cells(i, 2), .Cells(i + 3, 2)))
        Next i
        For i = 2 To DerLig - 2
            .Cells(i + 2, 4).Value = Application.WorksheetFunction.Average(.Range(.Cells(i + 1, 3), .Cells(i + 2, 3)))
        Next i
         .Range(.Cells(DerLig - 1, 4), .Cells(DerLig, 4)).ClearContents
    End With
 'Traitement des données
Set Serie_Y = Range("D4:D11")
Set Serie_X = Range("E4:E11")
Range("J4:K4").Value = Application.WorksheetFunction.LinEst(Serie_Y, Serie_X)
 
'3eme boucle de traitement
For i = 2 To DerLig
    Cells(i, 6).Value = Range("j4").Value * Cells(i, 5).Value + Range("k4").Value
    If Cells(i, 6).Value <> 0 Then
        Cells(i, 7).Value = Cells(i, 2).Value / Cells(i, 6).Value
    End If
    'Cells(i, 8).Value = Cells(i, 2).Value / Cells(i, 7).Value
Next i
'calcul des Coefficients saisonniers trimestriels
Trim1 = (Range("g2").Value + Range("g6").Value + Range("g10").Value) / 3
Trim2 = (Range("g3").Value + Range("g7").Value + Range("g11").Value) / 3
Trim3 = (Range("g4").Value + Range("g8").Value + Range("g12").Value) / 3
Trim4 = (Range("g5").Value + Range("g9").Value + Range("g13").Value) / 3
' affichage des Coefficients saisonniers trimestriels
Cells(7, 11).Value = Trim1
Cells(8, 11).Value = Trim2
Cells(9, 11).Value = Trim3
Cells(10, 11).Value = Trim4
 
 
'4eme boucle de traitement
'For i = 2 To DerLig
   ' Cells(i, 8).Value = Cells(i, 1).Value.Value * Trim1
'Next i
End Sub
HERBINE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 09h22   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 895
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 895
Points : 7 179
Points : 7 179
Bonjour,

Peux tu être plus précis sur ton blocage. (quelle ligne?, quel résultat Attendu?
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 11h56   #3
Invité de passage
 
Inscription : mai 2008
Messages : 27
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 27
Points : 3
Points : 3
Par défaut CALCUL CAFFAIRES

BONJOUR JEROME
je vais essayer d'être plus claire, je souhaite calculer en VBA les chiffres d’affaires désaisonnalisé colonne H en fonction des coefficients trimestriels, T1 T2 T3 et T4 afin d’obtenir les résultats suivants,
Chiffre d'affaires désaisonnalisé colonne H
278
280
296
285
289
293
288
298
312
320
320
337
Pour obtenir 278 = 240/ 0,864 T1

280= 420/ 1,501 T2
296 = 370/1,249 T3
285 = 110/0,386 T4

pour obtenir le chiffraires désaisonnalisé trimestiel de l'année N-2
formule = les ventes / coefficient moyen trimestriels

on refait ma même chose avec l'anné N-1 ET N
pour N-1

Pour obtenir 289 = 250/ 0,864 T1

293= 440/ 1,501 T2
288 = 360/1,249 T3
298 = 115/0,386 T4
etc

formalisé en VBA me semble difficile
merci pour votre aide
HERBINE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h51   #4
Membre actif
 
Inscription : novembre 2008
Messages : 188
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 188
Points : 194
Points : 194
Pourquoi VBA? Excel sait faire des divisions...
Sclarckone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h23   #5
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 895
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 895
Points : 7 179
Points : 7 179
Comme le dis Sclarckone je ne pense que VBA soit utilise ici.

Si je comprend bien, ton problème est que tes CA sont sur une colonne (x lignes)
et que tes coefs sont sur une plage fixe.

Sur le premier pavé de CA

Code :
1
2
3
4
=B2/$K$7
=B3/$K$8
=B4/$K$9
=B5/$K$10
Tu sélectionnes ensuite ces 4 cellules et tu glisses jusqu'en bas de ton tableau pour copier

tu auras ensuite
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
=B2/$K$7
=B3/$K$8
=B4/$K$9
=B5/$K$10
 
=B6/$K$7
=B7/$K$8
=B8/$K$9
=B9/$K$10
=B10/$K$7
=B11/$K$8
=B12/$K$9
=B13/$K$10
...
Si ton problème est ailleur, je ne le cerne pas du tout
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h43.


 
 
 
 
Partenaires

Hébergement Web