Changement d'unité

Résolu
Bonjour,

Je me permet de poser ma question et je compte sur la bonté des experts en VBA sur le forum pour m'aider.
dans le fichier ci-joint, dans la ligne 434 j'ai des parametre (Hmt, P0,P1,P2,N) pour chaque vitesse 100%, 90% ... mini.
Le probleme c'est que pour les trois paramètre P0, P1, et P2 j'ai l'unité en Watts (W) alors que j'en ai besoin en (KW), et j'ai une centaine de fichier à faire donc j'ai penser à une macro qui me permet de rendre l'unité pour les puissance P0,P1,P2 en KW sachant que ces trois parametres sont defini en fonction du débit Q pour chaque vitesse... je suis bloquer la ...

http://cjoint.com/13oc/CJllt45Oaug.htm

Merci d'avance

Messin 57000

5 réponses

  1. Contributeur
    Bonjour,
    Si j'ai compris ? , tu veux modifier les formules qui calcule Px en les divisant par 1000
    par exemple la formule..
    =2,30581707968367*N342 ^ 6 + -14,1565086199193*N342 ^ 5 + 73,5858102308732*N342 ^ 4 + -160,411830244295*N342 ^ 3 + 132,156931837631*N342 ^ 2 
    deviendrait ...
    =(2,30581707968367*N342 ^ 6 + -14,1565086199193*N342 ^ 5 + 73,5858102308732*N342 ^ 4 + -160,411830244295*N342 ^ 3 + 132,156931837631*N342 ^ 2  ) /1000
    Tu dis,
    A+
    0
    1. Bonjour Lermite222 ,

      oui c'est exactement cela...

      Merci

      A+

      mess57000
      0
      1. Contributeur
        Un exemple pour la ligne 342...
        Public Sub Div1000()
        Dim TB, i As Integer
        Dim S As String

        Application.ScreenUpdating = False
        Application.Calculation = xlCalculationManual

        'A compléter avec toutes les cellules à modifier
        TB = Array("E342", "I342", "K342", "L342") '....

        With Sheets("BLACK-BOOK")
        For i = 0 To UBound(TB)
        S = Range(TB(i)).FormulaLocal
        'Vérifier si la formule n'est pas déjà actualisée
        If Mid(S, 2, 1) <> "(" Then
        Range(TB(i)).FormulaLocal = "=(" & Mid(S, 2) & ")/1000"

        'Ajouter des zéros si plus de décimales
        Range(TB(i)).NumberFormat = "0.00"
        End If
        Next i
        End With

        Application.Calculation = xlCalculationAutomatic

        End Sub
        J'ai prévu de modifier l'affichage des décimales.
        A adapter.
        A+
        0
        1. Contributeur
          J'ai peut-être une autre idée pour optimiser.
          Toutes les formules en W doivent-elles êtres changée en Kw ou bien uniquement P1,P2 et P3
          Dans certaine lignes il y a plus de trois valeurs en W ?
          Tu dis.
          0
        2. Alors moi c'est juste la ligne 434 qui m'interesse et qui doit etre en KW et c'est uniquement le P0,P1,P2. oui dans certaine ligne il y'a plus de trois valeurs en W mais ces lignes ne m'interesse pas, de ce fichier c'est juste la ligne 434 qui minteresse et qui va être copier coller dans une autre base .

          A+
          Messin
          0
      2. Ahh c'est génial, merci beaucoup pour ton aide, je vais essayer d'adapter la macro à la ligne qui m'interesse, et merci pour l'anticipation par rapport au décimale ca me fait economiser beaucoup de temps.

        Merci beaucoup encore une fois d'avoir pris le temps de repondre à mon problème.

        Messin57000
        0
        1. Contributeur
          Peut-être avec ce code adapter ?
          Public Sub Div1000_V2()
          Dim TB, i As Integer
          Dim S As String

          Application.ScreenUpdating = False
          Application.Calculation = xlCalculationManual

          'A compléter avec toutes les cellules à modifier
          'les numéros de colonnes
          TB = Array(7, 8, 9, 13, 14, 15, 19, 20, 21, 25, 26, 27, 31, 32, 33, 37, 38, 39, 43, 44, 45, 49, 50, 51) '....

          With Sheets("BLACK-BOOK")
          For i = 0 To UBound(TB)
          S = Cells(434, TB(i)).FormulaLocal
          'S = Range(TB(i)).FormulaLocal
          'Vérifier si la formule n'est pas déjà actualisée
          If Mid(S, 2, 1) <> "(" Then
          Cells(434, TB(i)).FormulaLocal = "=(" & Mid(S, 2) & ")/1000"

          'Ajouter des zéros si plus de décimales
          Cells(434, TB(i)).NumberFormat = "0.00"
          'Changer l'unité renseignée en titre
          S = Cells(434, TB(i)).Offset(-1, 0)
          Cells(434, TB(i)).Offset(-1, 0) = Left(S, Len(S) - 3) & "(Kw)"
          End If
          Next i
          End With

          Application.Calculation = xlCalculationAutomatic
          End Sub

          Si cela te convient oublie pas de mettre le topic en résolu.
          A+
          0
          1. Je te remerci beaucoup^cela marche parfaitement bien
            0