Bonjour à tous,
C'est mon premier message sur cette partie du forum (je suis bien plus à l'aise sur Power BI).
Un ami m'aide a développer un générateur de facture en VBA, à côté de cette dernière une partie "analyse financière" de l'opération apparaît lors de l'appui sur un bouton. Mon collègue a fait en sorte d'appeler des formules qui sont stockées sur une autre feuille de ce classeur, j'ai écrit des formules, mais quand je les appelle, elles apparaissent avec les mauvaises destinations.
Globalement, 10 formules vont être copiée, sur la feuille source elles sont toutes sur la ligne 2 de la feuille, mais lors de l'appel, elles vont venir se renseigner à chaque ligne où il y a un produit sur la facture (range("CORPS") dans le code.
Le problème est le suivant, quand elles sont appelée les formules pointent sur la ligne 2, et non sur la ligne sur laquelle elle se trouve (ex: la formule =o2*k2, appelée sur la ligne 23 devrait devenir = o23*k23, etc...)
J'ai donc 2 questions :
- Le choix de faire les formules ainsi de les appeler est-il le bon ? si oui, il faut donc qu'elles deviennent dynamique.
- Si ce choix n'est pas le bon, l'autre solution est-elle d'écrire directement dans le code VBA la formule, mais dans ce cas, je ne sais pas faire
j'aurais besoin d'aides
Voici le code utilisé pour "l'appel" des mesures, les mesures sont simples (multiplications et calculs de %)
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 For Each c In Range("CORPS") c.Select nivInsert = ActiveCell.Row If Range("c" & nivInsert).Value <> "" And Range("M" & nivInsert).Value <> "" Then Worksheets("Saisies").Range("o" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("o2").Formula Worksheets("Saisies").Range("p" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("p2").Formula Worksheets("Saisies").Range("q" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("q2").Formula Worksheets("Saisies").Range("r" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("r2").Formula Worksheets("Saisies").Range("s" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("s2").Formula Worksheets("Saisies").Range("t" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("t2").Formula Worksheets("Saisies").Range("u" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("u2").Formula Worksheets("Saisies").Range("v" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("v2").Formula Worksheets("Saisies").Range("w" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("w2").Formula Worksheets("Saisies").Range("x" & nivInsert).Formula = Sheets("Analyse_Rentabilite").Range("x2").Formula Worksheets("Saisies").Range("o" & nivInsert & ":x" & nivInsert).Select Call miseenforme With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlJustify .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With
Merci d'avance pour vos réponses et d'éventuelles suggestions !
Cordialement,
Quentin
Partager