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
A voir également:
- Aide VBA programmation
- Application de programmation - Guide
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
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 ;-)
il est toujours égal à i = Feuil1.Cells(78, 7).Value, tu peux la mettre au-dessus de if et supprimer son doublon ça ne vas rien changer et tu vas gagner une ligne
ensuite je ne sais pas ce qu'est ton n, tu ne l'as pas initialisé
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
oui la cellule(78,7) change mais pas i
il faut que tu remettes i = Feuil1.Cells(78, 7).Value dans ta boucle while
dis -moi si c'est ça