VBA : Appliquer une macro pour calculer ligne après ligne/boucler une macro

Langer

XLDnaute Nouveau
Bonjour à tous,

J'ai bossé lors de mes études en pascal2 et j'étais pas très bon. Maintenant, je m'accroche à VBA pour réaliser un projet.

j'ai une macro qui fonctionne parfaitement pour calculer des valeurs avec des intrants sur une seule ligne.

Je souhaiterai boucler cette macro pour qu'elle applique le calcul ligne par ligne de la ligne 22 à 96 puis 103 à 177, puis 184 à 258 puis 265 à 335 en me donnant un résultat pour chacune des lignes.

J'ai essayé simplement les fonctions For i= 22 to 96 et Next i et avec la définition des variable en Range("H" & i) mais cela me créer des erreur.. Je ne trouve pas la solution

Si quelqu'un peut m'aider dans ma tâche, il me serait d'un grand secours :)

Voici une partie du code fonctionnel sur une ligne, la ligne 22 par exemple

Code:
' 

PMV Macro
'
'
Sub PMV()

    CLO = Worksheets("Méthode de calcul PMV-PPD").Range("H" & 22)
    TA = Worksheets("Méthode de calcul PMV-PPD").Range("J" & 22)
    TR = Worksheets("Méthode de calcul PMV-PPD").Range("K" & 22)
    MET = Worksheets("Méthode de calcul PMV-PPD").Range("I" & 22)
    VEL = Worksheets("Méthode de calcul PMV-PPD").Range("L" & 22)
    RH = Worksheets("Méthode de calcul PMV-PPD").Range("P" & 22)
    FNPS = Exp(16.6536 - 4030.183 / (TA + 235))
    PA = RH * 10 * FNPS
    ICL = 0.155 * CLO
    M = MET * 58.15
    

......

    PMVval = TS * (M - HL1 - HL2 - HL3 - HL4 - HL5 - HL6)
        PPDval = 100 - 95 * Exp(-0.03353 * PMVval ^ 4 - 0.2179 * PMVval ^ 2)
        Sheets("Méthode de calcul PMV-PPD").Range("U" & i) = TPO
        Sheets("Méthode de calcul PMV-PPD").Range("Q" & i) = PMVval
        Sheets("Méthode de calcul PMV-PPD").Range("T" & i) = N


End Sub
 
Dernière édition:

Langer

XLDnaute Nouveau
Re : VBA : Appliquer une macro pour calculer ligne après ligne/boucler une macro

Problème résolu. Je ne connaissais pas la fonction IsNumeric
Voici comment j'ai fait

Code:
' PMV Macro
'
'
Sub PMV()


Dim i As Integer

For i = 22 To 350


    CLO = Worksheets("Méthode de calcul PMV-PPD").Range("H" & i).Value
    TA = Worksheets("Méthode de calcul PMV-PPD").Range("J" & i).Value
    TR = Worksheets("Méthode de calcul PMV-PPD").Range("K" & i).Value
    MET = Worksheets("Méthode de calcul PMV-PPD").Range("I" & i).Value
    VEL = Worksheets("Méthode de calcul PMV-PPD").Range("L" & i).Value
    RH = Worksheets("Méthode de calcul PMV-PPD").Range("P" & i).Value
        
    If IsNumeric(CLO) And IsNumeric(TA) And IsNumeric(TR) And IsNumeric(MET) And IsNumeric(VEL) And IsNumeric(RH) Then
        
        FNPS = Exp(16.6536 - 4030.183 / (TA + 235))
        PA = RH * 10 * FNPS
        ICL = 0.155 * CLO
        M = MET * 58.15
     
.....

        Sheets("Méthode de calcul PMV-PPD").Range("U" & i) = TPO
        Sheets("Méthode de calcul PMV-PPD").Range("Q" & i) = PMVval
        Sheets("Méthode de calcul PMV-PPD").Range("T" & i) = N

    End If

    Next i

End Sub
 

Discussions similaires


Haut Bas