Bonjour à tous,
Tout d'abord petite explication générale de l'utilisation de VBA dans mon cas :
J'ai plusieurs feuilles avec des formats de tableaux différent qui sont lié par des calculs très simples. La macro va me permettre malgré l'éventuel décalage entre colonnes de trouver les valeurs de la bonne cellule. Par exemple j'ai deux tableaux 3(col.)*3(lin.) où ma formule est en deuxième colonne. La formule pointe vers une autre feuille sur deux tableau 1*1. si l'on effectue bêtement la copie de la formule entre les deux premiers tableaux, on trouvera un mauvais résultats dans le second vu qu'il pointera dans le vide.
Pour cela j'ai monté cette macro mais j'ai un petit souci lié je pense à la fonction Cells. Tout d'abord voici mon code :
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 For i = 0 To n - 1 frett_def = "Empilage!" & Cells(29, 67 + i * 3 + i) 'Localisation du frettage en definition Dext = "Empilage!" & Cells(15, 67 + i * 3 + i) 'Localisation du diametre exterieur de la piece male frett_serv = "Empilage!" & Cells(199, 67 + i * 3 + i) 'Localisation du frettage en service Cst_fmont = "Constantes_de_frettage!" & Cells(18, 69 + i) Cst_fmef = "Constantes_de_frettage!" & Cells(38, 69 + i) Cst_ffonc = "Constantes_de_frettage!" & Cells(58, 69 + i) 'Localisation des constantes de frettages des pieces femelles au montage en mef et en service Cst_Mmont = "Constantes_de_frettage!" & Cells(10, 69 + i) Cst_Mmef = "Constantes_de_frettage!" & Cells(30, 69 + i) Cst_Mfonc = "Constantes_de_frettage!" & Cells(50, 69 + i) 'Localisation des constantes de frettages des pieces males au montage en mef et en service P_serv = frett_serv & "/" & Dext & "/" & "(" & Cst_ffonc & "-" & Cst_Mfonc & ") * 0.001" 'Explicitation de la formule de la pression de service xlBook.Sheets.Item("Empilage").Cells(198, 3 + 3 * i + i) = P_serv 'Insertion dans la cellule de destination y = frett_def & "/" & Dext & "/" & "(" & Cst_fmont & "-" & Cst_Mmont & ") * 0.001" 'Explicitation de la formule de la pression de contact au montage xlBook.Sheets.Item("Detail_des_effets").Cells(57, 3 + 3 * i + i) = y 'Insertion dans la cellule de destination y = frett_def & "/" & Dext & "/" & "(" & Cst_fmef & "-" & Cst_Mmef & ") * 0.001" 'Explicitation de la formule de la pression de contact en mef xlBook.Sheets.Item("Detail_des_effets").Cells(68, 3 + 3 * i + i) = y 'Insertion dans la cellule de destination y = frett_serv & "/" & Dext & "/" & "(" & Cst_ffonc & "-" & Cst_Mfonc & ") * 0.001" 'Explicitation de la formule de la pression de contact en service xlBook.Sheets.Item("Detail_des_effets").Cells(79, 3 + 3 * i + i) = y 'Insertion dans la cellule de destination
Le but de ce code est de localiser tout d'abord des valeurs présente dans les cellules de mon fichier puis d'effectuer des calcules relativement simples avec une incrémentation.
Seul petit souci lors de l’exécution de cette macro, dans les de destination, le calcul n'est pas fait. En effet lorsque je veux envoyer mes résultats de "P_serv" ou "y" dans leur cellules respectives on trouve écrit "Empilage!/Empilage!/(Constantes_de_frettage!-Constantes_de_frettage!) * 0.001".
Le signe "=" a disparu. Seulement, lorsque je le rajoute, une erreur se produit dans l'exécution de la macro (Erreur de syntaxe).
Cela est il lié à la fonction Cells? y'a t il un moyen de le contourner?
Merci d'avance pour vos réponses! (Au besoin le fichier complet est joint).
Omnbre
Partager