Aide VBA programmation
Fermé
anthonypilloy
Messages postés
7
Date d'inscription
mercredi 6 mars 2013
Statut
Membre
Dernière intervention
12 mars 2013
-
6 mars 2013 à 16:40
anthonypilloy Messages postés 7 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 12 mars 2013 - 12 mars 2013 à 12:02
anthonypilloy Messages postés 7 Date d'inscription mercredi 6 mars 2013 Statut Membre Dernière intervention 12 mars 2013 - 12 mars 2013 à 12:02
A voir également:
- Aide VBA programmation
- Application de programmation - Guide
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
1 réponse
totodunet
Messages postés
1377
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
5 mars 2020
199
6 mars 2013 à 18:26
6 mars 2013 à 18:26
ce serait bien de poster ton code VBA oui car je n'arrive pas représenter ce que tu veux faire visuellement
7 mars 2013 à 08:24
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 ;-)
Modifié par totodunet le 7/03/2013 à 14:39
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é
7 mars 2013 à 14:40
8 mars 2013 à 08:55
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
8 mars 2013 à 23:52
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