[VBA] Excel - Décomposition contenu cellule

Résolu/Fermé
saian-sugus Messages postés 34 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 20 avril 2010 - 12 sept. 2008 à 14:52
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 - 12 sept. 2008 à 15:33
Bonjour,

J'aimerai savoir s'il est possible (surement..) de décomposer le contenu d'une cellule..

Mon exemple.

Dans ma cellule il est écrit 401_F, j'aimerai avoir que ce qu'il y'a avant le "_". c'est à dire 401..
Si c'était écrit 123+456_F, j'aimerai 123+456
Et si c'était écrit 123 (pas de "_"), je veux garder 123.

Est-ce qu'il y a une fonction qui me le permet?


Bonne journée :)
A voir également:

4 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
12 sept. 2008 à 15:02
Essaie sa
Dim indice as Integer
Dim chaine as String
...
'la tu fait ce que tu veut
indice=InStr(chaine,"_")  'récupère la position de "_" dans ta chaine de caractères
MsgBox Left(chaine,indice)  'affiche ce que tu recherche, à savoir la partie gauche de ta chaine jusqu'à indice, donc jusqu'au "_"

1
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
12 sept. 2008 à 15:04
Bonjour,

Je suggére d'utiliser la formule suivante:

=GAUCHE(D20;CHERCHE("_";D20;1))


dans cet exemple c'est la cellule D20 qui est testée. La fonction CHERCHE est la pour trouver le rang du caractére "_" et la fonction GAUCHE raméne la chaine du premier caratére à gauche jusqu'au rang du "_"


Cordialement,

A+
-1
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
12 sept. 2008 à 15:06
Valable sur une feuille de calcul excel...pas en vba
Mais bon, au moins il y a les deux solutions
-1
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
12 sept. 2008 à 15:08
Bonjour,

J'ai répondu un peu vite, ma formule ne marche que si il ya un "_" et il vaut miaux l'écrire :

=GAUCHE(D20;CHERCHE("_";D20;1)-1)


pour que le "_" ne soit pas dans le résultat mais la solution de Freto en VBA est bonne

Cordialement,
-1
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
12 sept. 2008 à 15:10
Heuuu ...tu es sur pour le -1 de l'indice?? parce que auquel cas, ma solution comporte une erreur.
Bon à 1 près, je pense qu'il s'en apercevra ^^
-1
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
12 sept. 2008 à 15:33
Oui, pas de problème,

j'avais pa vu qu'il s'agissait de VBA, décidément j'ai répondu trop vite.

Par contre il faut tester si Indice donne un résultat nul (pas de "_") pour renvoyer la chaine entière selon le souhait de saian-sugus.

A+
-1