Bonjour,
Après maintes recherches sur le sujet (qui m'ont déjà pas mal aidées), je suis bloquée dans un programme.
En effet, 2 tableaux (construits et nommés) sont présents:
-le premier, nommé "Tab_Données_ORLI" recueille des données brutes recueillies dans un logiciel.
-Le second nommé "Tab_Calculs" effectue des calculs à partir de ces données.
Les dimensions de ces deux tableaux (en terme de nombre de lignes essentiellement) est variable à chaque utilisation.
Je souhaite effectuer les actions les suivantes :
1- Cliquer sur le bouton de la macro "calcul profil de puissance" -> OK
2- Une fois que j'ai cliqué sur le bouton, le second tableau doit se remplir avec des formules (celles de calculs) et s'arrêter à la dernière ligne remplie. -> NOK
Je suis bloquée en effet car :
1-J'ai un message d'erreur qui est le suivant :
Mon code est (l'erreur au débogage est en gras) :
2-Lorsque j'ai étiré la formule, des nombre négatifs apparaissent alors que les données corrélées sont vides. Le tableau est systématiquement entièrement rempli alors que ce n'est pas le cas.
Vous trouverez ci-joint le fichier.
Auriez-vous une idée pour me dire où est l'erreur s'il vous plaît ?
Je vous remercie vivement par avance,
Excellente journée,
Anna
Après maintes recherches sur le sujet (qui m'ont déjà pas mal aidées), je suis bloquée dans un programme.
En effet, 2 tableaux (construits et nommés) sont présents:
-le premier, nommé "Tab_Données_ORLI" recueille des données brutes recueillies dans un logiciel.
-Le second nommé "Tab_Calculs" effectue des calculs à partir de ces données.
Les dimensions de ces deux tableaux (en terme de nombre de lignes essentiellement) est variable à chaque utilisation.
Je souhaite effectuer les actions les suivantes :
1- Cliquer sur le bouton de la macro "calcul profil de puissance" -> OK
2- Une fois que j'ai cliqué sur le bouton, le second tableau doit se remplir avec des formules (celles de calculs) et s'arrêter à la dernière ligne remplie. -> NOK
Je suis bloquée en effet car :
1-J'ai un message d'erreur qui est le suivant :
Mon code est (l'erreur au débogage est en gras) :
VB:
Option Explicit
Sub Calcul_Profil_Puissance()
Dim Jours_Stretch As Range, JEPP_stretch As Range, Puissance_corr As Range, Profil_theo As Range, Ecart_theo_exp As Range
Dim LO1 As ListObject, LO2 As ListObject
Dim ws1 As Worksheet, ws2 As Worksheet
Dim cell_d
Dim Formule_1 As String, Formule_2 As String, Formule_3 As String, Formule_4 As String, Formule_5 As String
Set ws1 = Sheets("Données_ORLI")
Set ws2 = Sheets("Résultats")
Set LO1 = ws1.ListObjects("Tab_Données_ORLI")
Set LO2 = ws1.ListObjects("Tab_Calculs")
Formule_1 = "=" & "B9-$B$9"
Formule_2 = "=" & "I10+(H10-H9)*J10/100"
Formule_3 = "=" & "SI(OU(C10 > 101, 5, C10 < 80), J9, C10)"
Formule_4 = "=" & "100-0,0584*I9-0,0054*I9*I9+3*I9*I9*I9*0,00001"
Formule_5 = "=" & "K9-J9"
With LO2 'Pour la formule 1'
.ListColumns("Jours de stretch").Range(2, 1).FormulaLocal = Formule_1 'La formule 1 est placée dans la 1ère case de la colonne'
[B] .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select[/B]
.ListColumns("Jours de stretch").Range(2, 1).Etirer_formules "H9:H" 'On étire la formule jusqu'à la fin du tableau, qui a des dimensions variables'
End With
With LO2 'Pour la formule 2'
.ListColumns("JEPP de stretch").Range(3, 2).FormulaLocal = Formule_2 'La formule 1 est placée dans la 1ère case de la colonne'
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select
.ListColumns("JEPP de stretch").Range(3, 2).Etirer_formules "I10:I" 'On étire la formule jusqu'à la fin du tableau, qui a des dimensions variables'
End With
With LO2 'Pour la formule 3'
.ListColumns("Puissance corrigée").Range(3, 3).FormulaLocal = Formule_3 'La formule 1 est placée dans la 1ère case de la colonne'
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select
.ListColumns("Puissance corrigée").Range(3, 3).Etirer_formules "J10:J" 'On étire la formule jusqu'à la fin du tableau, qui a des dimensions variables'
End With
With LO2 'Pour la formule 4'
.ListColumns("Profil théorique NACRE").Range(2, 4).FormulaLocal = Formule_4 'La formule 1 est placée dans la 1ère case de la colonne'
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select
.ListColumns("Profil théorique NACRE").Range(2, 4).Etirer_formules "K9:K" 'On étire la formule jusqu'à la fin du tableau, qui a des dimensions variables'
End With
With LO2 'Pour la formule 5'
.ListColumns("Ecart puissance théorie-exp").Range(2, 5).FormulaLocal = Formule_5 'La formule 1 est placée dans la 1ère case de la colonne'
.Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).Select
.ListColumns("Ecart puissance théorie-exp").Range(2, 5).Etirer_formules "L9:L" 'On étire la formule jusqu'à la fin du tableau, qui a des dimensions variables'
End With
End Sub
Private Sub Etirer_formules(cell_d)
Dim der_ligne As Long
der_ligne = LO2.Cells(Rows.Count, 1).End(xlUp).Row 'Pour la colonne "Jours de stretch"
Range(cell_d & der_ligne).FillDown
End Sub
2-Lorsque j'ai étiré la formule, des nombre négatifs apparaissent alors que les données corrélées sont vides. Le tableau est systématiquement entièrement rempli alors que ce n'est pas le cas.
Vous trouverez ci-joint le fichier.
Auriez-vous une idée pour me dire où est l'erreur s'il vous plaît ?
Je vous remercie vivement par avance,
Excellente journée,
Anna