Déterminer la nature d'une valeur de cellule excel

Résolu
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007 - 17 août 2007 à 14:01
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 22 août 2007 à 15:39
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
17 août 2007 à 18:24
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 août 2007 à 14:27
Split( sBuffer, "," )
0
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
17 août 2007 à 15:46
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.
0
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007
17 août 2007 à 16:14
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007
17 août 2007 à 19:27
Merci bien mortalino

Niikko
0
niikkoo Messages postés 50 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 4 septembre 2007
20 août 2007 à 16:29
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 août 2007 à 15:39
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
0
Rejoignez-nous