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