Extraire un chiffre/nombre d'une fonction
AQUILA34
Messages postés
5
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je viens vers vous pour une simple question qui cependant me bloque dans la construction d'un tableau.
Si c'est possible, comment extraire un chiffre d'une fonction ?
Ex : =1*3000
Ma cellule m'affiche donc 3000, mais dans une autre cellule je souhaiterais indiquer 1 (ou 2,si je change le 1 dans la première cellule), ceci pour ne pas utiliser une troisième cellule.
Voilà
Merci d'avance.
je viens vers vous pour une simple question qui cependant me bloque dans la construction d'un tableau.
Si c'est possible, comment extraire un chiffre d'une fonction ?
Ex : =1*3000
Ma cellule m'affiche donc 3000, mais dans une autre cellule je souhaiterais indiquer 1 (ou 2,si je change le 1 dans la première cellule), ceci pour ne pas utiliser une troisième cellule.
Voilà
Merci d'avance.
A voir également:
- Extraire un chiffre/nombre d'une fonction
- Extraire une video youtube - Guide
- Fonction si et - Guide
- Clavier iphone chiffre et lettre - Guide
- Extraire le son d'une vidéo - Guide
- Excel trier par ordre croissant chiffre - Guide
4 réponses
Bonjour
peut être quelque chose dans ce sens (avec macro - Alt-F11 pour accéder au code)
https://www.cjoint.com/?3LkohunRepS
Cdlmnt
peut être quelque chose dans ce sens (avec macro - Alt-F11 pour accéder au code)
https://www.cjoint.com/?3LkohunRepS
Cdlmnt
AQUILA34
Messages postés
5
Statut
Membre
Merci pour ton retour, regarde également la réponse de "pijaku" pour info
Bonjour,
Par du VBA c'est possible. Voici une petite fonction personnalisée, dans laquelle tu entres :
- la cellule ou se trouve ta formule,
- l'opérateur,
- le membre (l'opérande) de la formule que tu souhaites "sortir".
Code VBA :
Mise en place :
1- depuis ton classeur Excel, taper ALT+F11 (=> visual basic editor s'ouvre),
2- Insertion/Module,
3- Copier-coller ce code dans le module
4- fermer la fenêtre visual basic editor
Utilisation :
En A1, saisir la formule : =2*3000*10
- pour extraire 2 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";1)
- pour extraire 3000 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";2)
- pour extraire 10 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";3)
etc...
Note : Mais bon ça ne fonctionne qu'avec des opérations "simples"...
Cordialement,
Franck
Par du VBA c'est possible. Voici une petite fonction personnalisée, dans laquelle tu entres :
- la cellule ou se trouve ta formule,
- l'opérateur,
- le membre (l'opérande) de la formule que tu souhaites "sortir".
Code VBA :
Function ExtraitOperande(Cel As Range, Operat As String, NumOp As Integer) As Long Dim temp As String temp = Split(Cel.Formula, Operat)(NumOp - 1) If Left(temp, 1) = "=" Then temp = Right(temp, Len(temp) - 1) ExtraitOperande = CLng(temp) End Function
Mise en place :
1- depuis ton classeur Excel, taper ALT+F11 (=> visual basic editor s'ouvre),
2- Insertion/Module,
3- Copier-coller ce code dans le module
4- fermer la fenêtre visual basic editor
Utilisation :
En A1, saisir la formule : =2*3000*10
- pour extraire 2 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";1)
- pour extraire 3000 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";2)
- pour extraire 10 :
En A2 (par exemple), saisir : =ExtraitOperande(A1;"*";3)
etc...
Note : Mais bon ça ne fonctionne qu'avec des opérations "simples"...
Cordialement,
Franck
Salut pijaku
je me suis permis une petite modif pour que ça fonctionne avec des "non entiers"
Bonne journée à toi
Cordialement ccm81
je me suis permis une petite modif pour que ça fonctionne avec des "non entiers"
Function ExtraitOperande(Cel As Range, Operat As String, NumOp As Byte) Dim temp As String temp = Split(Cel.FormulaLocal, Operat)(NumOp - 1) If Left(temp, 1) = "=" Then temp = Right(temp, Len(temp) - 1) ExtraitOperande = temp * 1 End Function
Bonne journée à toi
Cordialement ccm81
Salut,
Merci, tu as bien fait.
Mais comme je préfères voir directement dans la déclaration de la fonction ce qu'elle va renvoyer, proposition (à partir de la tienne ;-)) :
Merci, tu as bien fait.
Mais comme je préfères voir directement dans la déclaration de la fonction ce qu'elle va renvoyer, proposition (à partir de la tienne ;-)) :
Function ExtraitOperande(Cel As Range, Operat As String, NumOp As Byte) As Double Dim temp As String temp = Split(Cel.FormulaLocal, Operat)(NumOp - 1) If Left(temp, 1) = "=" Then temp = Right(temp, Len(temp) - 1) ExtraitOperande = CDbl(temp) End Function
Justement pas, je ne veux pas utiliser de 3ème cellule :
Ex :
A1 : =1*3000
A2 : =1
Ex :
A1 : =2*3000
A2 : =2
Si je change en A1, ça impacte A2
Ex :
A1 : =1*3000
A2 : =1
Ex :
A1 : =2*3000
A2 : =2
Si je change en A1, ça impacte A2