Décomposer une formule

  • Initiateur de la discussion Initiateur de la discussion Claudy
  • 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 !

Claudy

XLDnaute Accro
Bonjour,
pour un classeur personnel, je cherche à décomposer une formule, dans le genre:
Si la cellule A1 contient =AA69, je voudrais avoir dans A2 le résultat 69.
Merci d'avance,
Claudy
 
Re : Décomposer une formule

Bonjour Claudy, le forum,

Une solution utilisant la fonction macro Excel 4.0 LIRE.CELLULE.

Si la formule est en Feuil1!A1,

- définir (menu Insertion-Nom) le nom F par :

=LIRE.CELLULE(6;Feuil1!$A$1)

- en A2 entrer la formule :

=LIGNE(INDIRECT(SUBSTITUE(F;"=";"")))

Edit : salut Bruno 🙂

A+
 
Dernière édition:
Re : Décomposer une formule

Bonjour,

Si le nombre de chiffres après les lettres est toujours le même, tu écris en A2 :

Code:
= DROITE(A1;2)

Là c'est du texte. Ou :

Code:
= DROITE(A1;2)*1

si tu veux du numérique.

Si c'est variable, il faut passer par du code VBA. Tu copies ce code, tu fais un clic droit sur l'onglet de ta feuille puis tu colles ce code. Ce code te mets le nombre en A2 à chaque modification de la cellule A1 :


Code:
Option Explicit

Sub Worksheet_Change(ByVal Cible As Range)
Dim Texte As String
Dim Cpt As Long
If Not Intersect(Range("A1"), Cible) Is Nothing Then
    For Cpt = 1 To Len(Range("A1").Value)
        If IsNumeric(Mid(Range("A1").Value, Cpt, 1)) Then
            Texte = Texte & Mid(Range("A1").Value, Cpt, 1)
        End If
    Next Cpt
    Range("A2").Value = Texte * 1
End If
End Sub

Cordialement

EDIT : Claudy n'a pas dit que le texte en A1 était une référence, mais si c'est le cas, la solution de Job75 est plus simple...
 
Dernière édition:
Re : Décomposer une formule

Re, salut mecano41,

En complément, si l'on veut le n° de colonne de la référence, utiliser bien sûr :

=COLONNE(INDIRECT(SUBSTITUE(F;"=";"")))

et si l'on veut la colonne sous forme de texte :

=SUBSTITUE(SUBSTITUE(F;"=";"");LIGNE(INDIRECT(SUBSTITUE(F;"=";"")));"")

Edition : s'il y a des caractères $ dans la référence, les supprimer dès la définition de F :

=SUBSTITUE(LIRE.CELLULE(6;Feuil1!$A$1);"$";"")

On peut même pour simplifier définir F par :

=SUBSTITUE(SUBSTITUE(LIRE.CELLULE(6;Feuil1!$A$1);"$";"");"=";"")

et ensuite entrer les formules :

=LIGNE(INDIRECT(F))

=COLONNE(INDIRECT(F))

=SUBSTITUE(F;LIGNE(INDIRECT(F));"")

A+
 
Dernière édition:
Re : Décomposer une formule

Ok, merci à vous tous, j'y trouve ce qui me faut...
Pour BrunoM45:
Une feuille Excell, une zone d'impression variable suivant le nombre de données introduite en AA2: AG....
Un template de feuille en colonnes =aa1 =ab1 =ac1 etc...
Ce template est à reproduire les uns en dessous des autres pour définir la zone d'impression finale.
Donc, la première ligne du template x = la dernière ligne +1 du template x-1 d'où l'importance de trouver le numéro de ligne de mon template précédent (x-1).
En espérant avoir été assez clair,
Encore merci à tous, et bon week end,
Claudy
 
- 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

  • Question Question
Microsoft 365 Mozaïque photos
Réponses
17
Affichages
600
Réponses
5
Affichages
186
Réponses
3
Affichages
258
Retour