Pièce jointe 156381Bonjour à tous !!
Je reviens avec un nouveau problème et mes compétences de débutante en VBA.
Vous trouverez un exemple de mon fichier en pièce jointe. Ce fichier, suivant les services, contient entre 3000 et 5000 lignes. De plus, pour certain service, il y a une autre donnée "NETWORK" qui est intégrée entre les lignes de MARGE et les lignes de TAUX.
Le but de ma macro est d'intégrer une formule de taux de marge sur toutes les lignes "2015 B" pour tous les mois
Plusieurs éléments à prendre en compte:
- Cette formule doit apparaitre car les données de CA et MARGE seront saisies par la suite et le calcul doit se faire automatiquement.
- Suivant la présence ou non de NETWORK, la formule est différente: MARGE / CA ou (MARGE + NETWORK) / CA
- Les variables sont parfois déclarées en public car cette procédure est juste un extrait de l'ensemble de ma macro
- pour NETWORK et ANNEE_Bud, il s'agit d'InputBox déifnies en début de macros
Les problèmes rencontrés sont les suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub MAJ_BUDGET_DETAIL() ' Mettre à jour l'onglet détail pour le budget Public NETWORK As Integer Public ANNEE_Bud As Integer Dim DernLigneTAB_DETAIL as Long Dim y As Integer ANNEE_Bud = 2015 NETWORK = 6 ' Sélectionner la feuille DETAIL et déterminer la colonne des Phase Sheets("DETAIL").Select DernLigneTAB_DETAIL = Range("A" & Rows.Count).End(xlUp).Row MsgBox (DernLigneTAB_DETAIL) Set ColPhase = Range("D5:D" & DernLigneTAB_DETAIL) For Each phase In ColPhase Select Case phase 'Case Is = ANNEE_Bud - 1 & " R" 'phase.Interior.Color = Coul_Phase3 'phase.Offset(0, 1).Interior.Color = Coul_Phase3 Case Is = ANNEE_Bud & " B" If phase.Offset(0, 1).Value = " TAUX" Then For y = 2 To 14 ' Si NETWORK = NO If NETWORK = 6 Then ValMarge = phase.Offset(-1, y).Value ValCA = phase.Offset(-2, y).Value phase.Offset(0, y).FormulaR1C1 = Taux_ss_network(ValMarge, ValCA) phase.Offset(0, y).Font.Color = RGB(0, 0, 0) End If ' Si NETWORK = YES If NETWORK = 7 Then phase.Offset(0, y).FormulaR1C1 = (phase.Offset(-2, y) + phase.Offset(-2, y)) / phase.Offset(-3, y) Next y End If End Select Next End Sub Function Taux_ss_network(ValMarge, ValCA) Taux_ss_network = ValMarge / ValCA End Function
- la formule n'apparait pas dans les cellules, uniquement le résultat
- un message d'erreur apparait: Erreur d'exécution 6 "dépassement de capacité"
Pouvez-vous s'il vous plait m'aider à corriger ce code??
Je vous remercie par avance.
Jessica
Partager