Excel formules très compliquées

Résolu/Fermé
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011 - 9 nov. 2011 à 23:06
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011 - 10 nov. 2011 à 14:14
Bonjour,
comment
modifier une feuille de calculs très compliqués en macro sans avoir à tout retaper?
est ce possible de convertir une feuille de calculs en macro ou de faire exécuter ces formulés par une macro?

Merci

A voir également:

8 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
10 nov. 2011 à 09:21
Bonjour,

Et si tu expliquais (clairement et complètement) ce que tu as et ce que tu veux ?
eric
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 nov. 2011 à 09:36
Salut Eriic,
Il s'agit de la suite de ce sujet...
Ne pas tout relire, juste le message permalink 23.
Je reste ici en cas de besoin.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
10 nov. 2011 à 09:49
Ok, ben c'est pas plus clair là bas... ;-)

Pour info pour le demandeur, on peut faire des fonctions personnalisées en vba.
Donner le nom voulu pour la fonction, les variables d'entrées et la formule pour fournir le résultat en sortie.
Ca permet d'accélérer et d'alléger un tableau, ainsi que de simplifier la saisie et la lecture.

@+
eric
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 nov. 2011 à 10:27
Si vous le voulez on va continuer ici.......

Il faut que tu sois simple dans tes explications, je ne suis pas ingénieur en aérospaciale et donc moi, tous tes trucs Einsteiniens, je risque de ne pas les comprendre. Eriiic peut être mais moi pas!

Bon pour être simple, voici ce dont nous avons besoin.

Exemple :
En colonne A, j'ai des nombres à 5 chiffres après la virgule,
En Colonne B, j'ai des nombres entiers de 1 à 9999,
En colonne C, un pourcentage à 2 chiffres après la virgule,
En Colonne D, un chiffre entre -9 et 9,
En Colonne E, la formule =(A*B)+C

Je souhaites obtenir en colonne F, par macro, à chaque changement d'une donnée dans les colonnes A, B, C, D, le résultat de la formule :
=((A/(B*C))+Ln(E)*10^4-Exp(A*D))*k ou k = 1,61803399 * pi

Là c'est clair. En tout cas pour moi...
Ok?
0
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 10:50
Le hic c'est que si je te fait ça avec toutes mes formules, je te fais trois pages, on va donc partir du principe de base et si je te comprends pour ça, je l'appliquerai au reste:

Je défini par n'importe quel nombre:

I6
I7
I12
I13

J8=RACINE((PUISSANCE(I6;2)+PUISSANCE(I7;2)))
J14=RACINE((PUISSANCE(I12;2)+PUISSANCE(I13;2)))

K6=I6+J8
K7=I7+J8
K12=I12+J14
K13=I13+J14

J8=RACINE((PUISSANCE(K6;2)+PUISSANCE(K7;2)))
J14=RACINE((PUISSANCE(K12;2)+PUISSANCE(K13;2)))

En gros

Ma feuille de calculs en contient des tonnes.... est il possible de les convertir en macro sans tout retaper ou de faire une macro reprenant ces formules telles quel le but étant de ne pas tout retaper en VBA

C'est mieux là, non?
Plus simple sera compliqué
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié par eriiic le 10/11/2011 à 10:58
Re,

Si tu pouvais déposer un fichier exemple sur cjoint.com et coller le lien ici (avec le résultat attendu...).
Ca a l'air d'un calcul récursif.
Si c'est ça (assez complexe et pas de garantie d'y arriver ;-) ) quelle est la condition de sortie ?

Sinon, te faut-il tous les résultats intermédiaires, et combien de calculs successifs ?

eric
0
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 11:09
s'il y a un maximum de calculs successifs, je suis preneur
pour l'instant je me sert des résultats intermédiaires (vitesses et accélérations sur x et y) pour les afficher en graphique mais je ne suis pas borné.

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 11:05
S'agissant du calcul de trajectoires de deux corps A et B en partant de leurs masses, de leurs positions en x et y de départ (en gros: I6;I7;I12;I13) et de leurs vitesses initiales pour calculer les nouvelles position en x et y (K6;K7;K12;K13) la condition de sortie pourra être complètement arbitraire (pourquoi pas la fin de la ligne sur excel 2010 par exemple?)


Cordialement
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
10 nov. 2011 à 11:43
Les résultats intermédiaires sont toujours en J8, J14 et sont écrasés par le calcul suivant, c'est ça ?
Donc ils ne te servent pas et on peut s'abstenir de les mettre sur la feuille. D'accord ?

Sinon on peut tous les mettre mais plutôt en I8, i14, puis J8,J14, puis K8, K14, etc.
Cette irrégularité avec une colonne sautée me perturbe.
Je répète : Si tu pouvais déposer un fichier exemple sur cjoint.com et coller le lien ici
Sinon on va faire à notre idée et la position de cellules ne conviendra peut-être pas à ton projet.

eric
0
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 11:58
Je suis plutôt d'accord pour ta solution de les mettre dans la colonne suivante sinon, je suis preneur de toute disposition qui pourra être plus pratique mais je préfère les garder
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
10 nov. 2011 à 12:17
Et il n'y a qu'un seul couple à calculer ?
S'il y en a d'autres où sont-ils ? Nombre fixe ou variable ?
0
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 12:29
Pour comprendre le principe je voudrais juste avoir les lignes VBA pour les relations que j'ai donné.

A part

I6
I7
I12
I13

fixés au début tout le reste est calculé et donc variable si je comprends bien ta question
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
10 nov. 2011 à 13:32
Re,

Regarde si ça va :
Sub calcul()
    Dim nbcol As Long, col As Long
    nbcol = Application.InputBox("Nombre de calculs voulus : ", Type:=1)
    If nbcol < 1 Then
        MsgBox ("nombre non valide")
    Else
        Application.ScreenUpdating = False
        ' nettoyage
        [J6].Resize(2, Columns.Count - 9).ClearContents
        [J12].Resize(2, Columns.Count - 9).ClearContents
        For col = 10 To WorksheetFunction.Min(nbcol, Columns.Count - 10) + 9
            Cells(8, col) = Sqr(Cells(6, col - 1)) ^ 2 + (Cells(7, col - 1) ^ 2)
            Cells(14, col) = Sqr(Cells(12, col - 1)) ^ 2 + (Cells(13, col - 1) ^ 2)
            '
            Cells(6, col) = Cells(6, col - 1) + Cells(8, col)
            Cells(7, col) = Cells(7, col - 1) + Cells(8, col)
            Cells(12, col) = Cells(12, col - 1) + Cells(14, col)
            Cells(13, col) = Cells(13, col - 1) + Cells(14, col)
        Next col
        Application.ScreenUpdating = True
    End If
End Sub


Je te laisse contrôler les calculs sur qcq exemples.

Comme tu es avare de détails et pour fournir un exemple, selon les conditions de départ on obtient un overflow assez rapidement que tu devrais pouvoir régler.

eric
0
KOMENCAMARCHE00 Messages postés 26 Date d'inscription mardi 8 novembre 2011 Statut Membre Dernière intervention 10 novembre 2011
10 nov. 2011 à 14:14
C'est exactement la base qu'il me fallait merci beaucoup
0