Aide VBA programmation
anthonypilloy
Messages postés
7
Date d'inscription
Statut
Membre
Dernière intervention
-
anthonypilloy Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
anthonypilloy Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise un programme qui à partir d'une valeur maximal de différences entre 2 nombres exécute certaines commandes.
Je m'explique : j'ai des colonnes de G à L et j'effectue la différence entre la ligne 67 et 68 de chaque colonne sur la ligne 69 ensuite je prend la valeur maximal de cette ligne de différence et j'en ressort par une "rechercheH" la valeur de la colonne G=7;H=8; etc.
De cette valeur assignée à la colonne je définis la valeur de ma variable i qui effectue les opérations dans mon code
Le problème est qu'au cours de c'est manipulation, la valeur de i change et mon programme s'arrête alors qu'il devrait continuer.
Autrement dit je commence le calcul avec i=8 (par exemple) mais pendant les opérations i passe à 7 mais ne continue pas.
Existe t-il un moyen de lui faire continuer jusqu'à ce que toute les valeurs possibles de i respectent mes conditions???
Si besoin je peux poster mon code VBA en réponse.
MERCI D'AVANCE
Je réalise un programme qui à partir d'une valeur maximal de différences entre 2 nombres exécute certaines commandes.
Je m'explique : j'ai des colonnes de G à L et j'effectue la différence entre la ligne 67 et 68 de chaque colonne sur la ligne 69 ensuite je prend la valeur maximal de cette ligne de différence et j'en ressort par une "rechercheH" la valeur de la colonne G=7;H=8; etc.
De cette valeur assignée à la colonne je définis la valeur de ma variable i qui effectue les opérations dans mon code
Le problème est qu'au cours de c'est manipulation, la valeur de i change et mon programme s'arrête alors qu'il devrait continuer.
Autrement dit je commence le calcul avec i=8 (par exemple) mais pendant les opérations i passe à 7 mais ne continue pas.
Existe t-il un moyen de lui faire continuer jusqu'à ce que toute les valeurs possibles de i respectent mes conditions???
Si besoin je peux poster mon code VBA en réponse.
MERCI D'AVANCE
1 réponse
-
ce serait bien de poster ton code VBA oui car je n'arrive pas représenter ce que tu veux faire visuellement
-
Sub airenecessaire()
Dim Ainitiale, Aobjectif, n, Splafond, i As Double
If Feuil1.Cells(5, 3).Value = 1 Then 'Si on travaille en octave
i = Feuil1.Cells(78, 7).Value
Feuil1.Cells(43, 6).Value = 0 'Initialise la valeur de la surface d'absorbant à 0
Ainitiale = Feuil1.Cells(64, i).Value 'Calcul la valeur de l'aire d'absorption équivalente de l'absorbant
Aobjectif = (0.16 * Feuil1.Cells(13, 7).Value) / Feuil1.Cells(66, i).Value 'Calcul l'AAE objectif à atteindre
npanneau = 0
Splafond = Feuil1.Cells(27, 6).Value 'Calcul de la surface de plafond
While (Ainitiale < Aobjectif) And (Splafond > 1)
Ainitiale = Ainitiale - Feuil1.Cells(27, i).Value + Feuil1.Cells(43, i).Value
n = n + 1
Splafond = Splafond - 1
If Splafond < 1 Then
MsgBox "ERREUR :PAS ASSEZ DE SURFACE PLAFOND POUR ATTEINDRE L'OBJECTIF"
End If
Wend
Feuil1.Cells(43, 6) = n
Else
i = Feuil1.Cells(78, 7).Value
Feuil1.Cells(43, 6).Value = 0
Ainitiale = Feuil1.Cells(64, i).Value
Aobjectif = (0.16 * Feuil1.Cells(13, 7).Value) / Feuil1.Cells(66, i).Value
npanneau = 0
Splafond = Feuil1.Cells(27, 6).Value
While (Ainitiale < Aobjectif) And (Splafond > 1)
Ainitiale = Ainitiale - Feuil1.Cells(27, i).Value + Feuil1.Cells(43, i).Value
n = n + 1
Splafond = Splafond - 1
If Splafond < 1 Then
MsgBox "ERREUR :PAS ASSEZ DE SURFACE PLAFOND POUR ATTEINDRE L'OBJECTIF"
End If
Wend
Feuil1.Cells(43, 6) = n
End If
End Sub
Voilà si tu as de plus ample question n'hésite pas merci à toi d'essayer de m'aider ;-) -
-
-
n et npanneau sont la même variable mais j'ai remodifié et mon programme tournait de toute manière ;-) donc c'est la même variable
en fait la condition "if" n'a rien à voir pour l'instant je ne travaille que pour la condition vérifiée.
Et pendant la boucle while ma valeur dans la cellule (78,7) change car dans chaque colonne les différences évoluent différemment et donc il est possible que la valeur 78,7 passe de 7 à 10 par exemple mais que quand il vaut 10 le calcul ne soit pas fini.
J'espère que je suis assez clair c'est pas super évident a expliquer -
-