Déterminer la nature d'une valeur de cellule excel [Résolu]

Signaler
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour,

Dans un tableau excel, je cherche à déterminer si les valeurs des cellules sont données par des formules (opérations simples du type +, -, x ou /) afin de récuperer les chiffres/nombres constituant l'opération.
Exemple:
la cellule A5 contient " = 4+7+9+10"
je veux récupérer les chiffres 4, 7, 9 et 10 afin de calculer un modulo 3 de chacun de ses chiffres/nombres

Comment faire?

je pensais utiliser Formula pour la reconnaissance... mais pour récuperer les chiffres après aucune idée

merci pour toute aide
Niikko

7 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

plus simple avec Split, comme le dit Renfield, à part que je le corrige, le Delimiter n'est pas la virgule mais le +. Exemple :

Option Explicit

Sub test()
    Dim MesValeurs() As String, i As Long

MesValeurs =  Split(Range("a1").Formula, "+")
MesValeurs(LBound(MesValeurs)) = Replace(MesValeurs(LBound(MesValeurs)), "=", vbNullString)

For i = LBound(MesValeurs) To UBound(MesValeurs)
    MsgBox MesValeurs(i)
Next i
Erase MesValeurs

End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

Et si tu dois gérer différents Delimiter (donc tous les signes + - * / \ ), tu peux combiner le snippet (fonction) de PCPT.
Sur Codyx, cherche MultiSplit

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Split( sBuffer, "," )
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

je suppose que tu es en VB ou en VBA :

1 - chercher si c'est une formule dans une cellule et pas une valeur : utilise instr()

2 - split renvoie un tableau d'une dimension avec un seul critère de recherche
il vaut mieux utiliser instr() encore pour découper ton string :-))

sinon sous excel, il n'y a de toute façon pas de fonction qui permet de faire qu'une formule soit considérer comme du texte.
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007

Merci pour vos réponses rapides,
le traitement "modulo" se fait effectivement via une macro sous vba.
Après lecture des aides vba, je suis encore un peu dans le brouillard
Est-ce possible de me donner un exemple de l'une des deux (ou des deux) solutions à partir de mon exemple ????

Niikko
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007

Merci bien mortalino

Niikko
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
4 septembre 2007

Oups encore moi!

j'ai un soucis qd j'essai d'étendre le code à quelquechose du style:

sub()

dim MesValeurs......

for k =...to
for j =...to

MesValeurs = Split(Cells(k,j).Formula,"+")
......-fin de ton code-

next k
next j

end sub()
Niikko
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
pas suffisant ton code tel qu'on le voit.
J'imagine que tu veux tout splitter, alors utilise cette fonction :
http://www.codyx.org/snippet_split-sur-plusieurs-criteres_233.aspx

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA