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
    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+
    1. Je te remerci beaucoup^cela marche parfaitement bien
  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
    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+
      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.
      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
    2. Bonjour Lermite222 ,

      oui c'est exactement cela...

      Merci

      A+

      mess57000
      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+