Séparation des paramètres d'une équation

  • Initiateur de la discussion Initiateur de la discussion CISCO
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CISCO

XLDnaute Barbatruc
Bonjour à tous

Encore besoin d'un coup de main.

Dans une cellule, par exemple en A1, j'ai une équation, comportant par exemple 5 variables.

Il faut que dans 5 cellules consécutives, apparaissent ces 5 paramètres.

Quelques exemples :
En A1 Tmél = (qmA*TA+qmB*TB)/(qmA+qmB)
en C1, Tmél
en D1, qmA
en E1, TA
en F1, qmB
en G1, TB

en A5 2*j= l * r * u^2 / (2 * d)

en C5, j
en D5, l
en E5, r
en F5, u
en G5, d

Je ne sais pas à l'avance quelle sera la forme, la syntaxe de l'équation. J'ai essayé différents trucs, mais j'arrive à des formules hyperlongues (élimination de tous les symboles +,-,/,*, (, ), des chiffres...), et avec des cas particuliers difficilement résolvables.

Quelqu'un aurait il une idée ?

Merci d'avance
 
Re : Séparation des paramètres d'une équation

Bonsoir Cisco,

L'essai que je viens de faire pour un autre problème peut peut-être t'aider.

La procédure recherche les antécédants qui sont utilisés dans une formule. A partir de l'exemple joint, tu lances la macro "Test".

@+

Gael
 

Pièces jointes

Re : Séparation des paramètres d'une équation

Bonjour,

Une piste avec le code suivant à copier dans un module standard.
Je me suis référé à votre énoncé pour obtenir ce qui est dit.

FONCTIONNEMENT
Sélectionnez la plage des équations (mais sur UNE seule colonne
Ex : B1:B12) et lancez la macro "ParamEquation".

ATTENTION
Faites un test sur une copie de votre classeur. Les résultats s'inscrivant à partir de
la colonne sélectionnée + 2 colonnes et suivantes, si ces colonnes contiennent déjà
des données elles seront écrasées.
D'autre part, la macro ne fonctionne qu'avec des expressions contenant
le signe "=". Si vous avez des expressions sans ce signe du style
a+b+c faites a+b+c=

***********************
Sub ParamEquation()
Dim R As Range
Dim C As Range
Dim A$
Dim B$
Dim i&
Dim j&
Dim h&
Dim T()
Dim T2()
Dim cpt&
Dim bool As Boolean
If TypeName(Selection) <> "Range" Then Exit Sub
Set R = Selection
If R.Columns.Count > 1 Then Exit Sub
For Each C In R
A$ = ""
bool = False
cpt& = 0
Erase T
Erase T2
If Not IsEmpty(C) And InStr(1, C, "=") <> 0 Then
If Trim(C) <> "" Then
A$ = C & Space(1)
Do Until A$ = ""
h& = Asc(A$)
If h& >= 65 And h& <= 90 Or _
h& >= 97 And h& <= 122 Or _
h& = 224 Or _
h& >= 232 And h& <= 235 Then
B$ = B$ & Left(A$, 1)
Else
B$ = B$ & Space(1)
End If
A$ = Mid(A$, 2)
Loop
Do Until B$ = ""
If InStr(1, B$, Space(1)) > 0 Then
bool = True
A$ = Mid(B$, 1, InStr(1, B$, Space(1)) - 1)
B$ = LTrim(Mid(B$, Len(A$) + 1))
cpt& = cpt& + 1
ReDim Preserve T(1 To 1, 1 To cpt&)
T(1, cpt&) = A$
Else
B$ = ""
End If
Loop
If bool Then
cpt& = 0
For j& = UBound(T, 2) To 2 Step -1
For i& = j& - 1 To 1 Step -1
If T(1, j&) = T(1, i&) Then
T(1, j&) = ""
cpt& = cpt& + 1
Exit For
End If
Next i&
Next j&
ReDim T2(1 To 1, 1 To UBound(T, 2) - cpt&)
cpt& = 0
For j& = 1 To UBound(T, 2)
If T(1, j&) <> "" Then
cpt& = cpt& + 1
T2(1, cpt&) = T(1, j&)
End If
Next j&
Range(Cells(C.Row, 3), _
Cells(C.Row, 3 + UBound(T2, 2) - 1)) = T2
End If
End If
End If
Next C
End Sub
***********************

Cordialement.

PMO
Patrick Morange
 
Re : Séparation des paramètres d'une équation

Bonjour à tous

Merci PMO2, merci Gael

En attendant vos conseils, j'ai essayé dans mon coin, et vous trouverez en pièce jointe le résultat de mon travail. Ca semble marcher correctement... A utiliser avec précaution.


Je vais essayer avec la macro de PMO2. Encore merci

Et bonnes fêtes.
 
Re : Séparation des paramètres d'une équation

Bonsoir CISCO et le fil,

Merci de ta pièce jointe... reposante.... elle est.

Dépôt en version 97-2003, et en en zip s'il le faut....

Pour zipper, clic droit dans l'explorateur Windows et Envoyer vers/Dossier compressé.... c'est ce fichier que tu dois déposer s'il fait moins de 48.8Ko. Sinon retire quelques données pour mettre à niveau.

Ton post est vide...

Bonne soirée.

Jean-Pierre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
647
Réponses
1
Affichages
1 K
Retour