Changement d'unité

Résolu
messin57000 Messages postés 72 Statut Membre -  
messin57000 Messages postés 72 Statut Membre -
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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. messin57000 Messages postés 72 Statut Membre
     
    Bonjour Lermite222 ,

    oui c'est exactement cela...

    Merci

    A+

    mess57000
    0
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      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. messin57000 Messages postés 72 Statut Membre
       
      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
  4. messin57000 Messages postés 72 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. messin57000 Messages postés 72 Statut Membre
       
      Je te remerci beaucoup^cela marche parfaitement bien
      0