[VBA] Excel - Décomposition contenu cellule [Résolu/Fermé]

Signaler
Messages postés
34
Date d'inscription
jeudi 24 juillet 2008
Statut
Membre
Dernière intervention
20 avril 2010
-
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
-
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 :)

4 réponses

Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
150
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
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+
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
150
Valable sur une feuille de calcul excel...pas en vba
Mais bon, au moins il y a les deux solutions
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
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,
Messages postés
1542
Date d'inscription
vendredi 6 juillet 2007
Statut
Membre
Dernière intervention
8 avril 2016
150
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 ^^
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
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+