Extraire un chiffre/nombre d'une fonction
Fermé
AQUILA34
Messages postés
4
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
10 décembre 2013
-
10 déc. 2013 à 11:36
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 10 déc. 2013 à 15:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 10 déc. 2013 à 15:04
A voir également:
- Extraire un chiffre/nombre d'une fonction
- Extraire une video youtube - Guide
- Fonction si et - Guide
- Excel trier par ordre croissant chiffre - Guide
- Extraire son d'une video - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
4 réponses
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
10 déc. 2013 à 14:08
10 déc. 2013 à 14:08
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 10/12/2013 à 14:45
Modifié par pijaku le 10/12/2013 à 14:45
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
AQUILA34
Messages postés
4
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
10 décembre 2013
10 déc. 2013 à 14:57
10 déc. 2013 à 14:57
Merci, c'est parfait et simple d'utilisation. En plus on peut donc réappliquer une autre fonction sur le résultat.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
Modifié par pijaku le 10/12/2013 à 14:59
Modifié par pijaku le 10/12/2013 à 14:59
En plus on peut donc réappliquer une autre fonction sur le résultat.
Oui car la Function est déclarée "As Long", donc le résultat sera un nombre entier.
Oui car la Function est déclarée "As Long", donc le résultat sera un nombre entier.
Function ExtraitOperande(Cel As Range, Operat As String, NumOp As Integer) As Long
ccm81
Messages postés
10900
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
2 novembre 2024
2 425
Modifié par ccm81 le 10/12/2013 à 15:00
Modifié par ccm81 le 10/12/2013 à 15:00
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
10 déc. 2013 à 15:04
10 déc. 2013 à 15:04
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
AQUILA34
Messages postés
4
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
10 décembre 2013
10 déc. 2013 à 11:56
10 déc. 2013 à 11:56
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
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
10 déc. 2013 à 12:14
10 déc. 2013 à 12:14
Scuse, j'aurais du être plus clair.
Si c'est possible, comment extraire un chiffre d'une fonction ?C'est pas possible. Excel n'est pas prévu pour ça. Si tu transformes tes fonctions en texte tu pourrais éventuellement extraire le 1 et le 2, mais tu perds l'intérêt même d'avoir un formule.
Bruce Willix
Messages postés
11968
Date d'inscription
mardi 24 mai 2011
Statut
Contributeur
Dernière intervention
12 juin 2018
2 590
10 déc. 2013 à 11:46
10 déc. 2013 à 11:46
Dans la cellule A1 tu mets 1
et dans la cellule B1 tu mets =A1*3000
et dans la cellule B1 tu mets =A1*3000
10 déc. 2013 à 14:58