Identifier le caractère spécial de ma cellule

RE

=STXT(TEXTE(I8;"standard €");CHERCHE(" ";TEXTE(I8;"standard €"))+1;2)

qui fonctionne bien ; mais pas pour BT et par magie

STXT(TEXTE(I8;"standard tulipe");CHERCHE(" ";TEXTE(I8;"standard tulipe"))+1;6)

renvoie un royal "tulip1"

=STXT(TEXTE(I8;"standard ""BT""");CHERCHE(" ";TEXTE(I8;"standard ""BT"""))+1;2)

marche cela mais cela ne prouve rien car en fait tu formates la cellule avec BT même si elle contient PC...

Je ne crois pas qu'une formule puisse détecter le format...

Bonjour Chris,

J'en suis presque sur aussi que c'est impossible par formule. J'ai pas trouvé plus simple qu'une fonction personalisée

Oui c'est plus clair Valentin

Merci

Bonjour MjEmStras, Le Forum,

C'est possible par une formule, très simple.

Mais il faut modifier tes formats personnalisés

Donc pour BT

# ##0" BT";-# ##0" BT"; "BT"

et pour PC

# ##0" PC";-# ##0" PC";" PC"

en retour ton classeur.

3classmj.xlsx (28.98 Ko)

RE

Sauf si j'ai mal compris, pour moi le but est de détecter automatiquement l'unité qu'elle soit BT, PC ou autre et cette solution ne le fait pas...

Contrairement à VBA qui peut analyser le format d'une cellule...

A nouveau,

Dans le cas ou il existe un format personnalisé dans une colonne (exemple BT).

Si l'on change de format.

Il convient de coller le format de cette colonne dans la colonne de droite.

Ou de sélectionner les deux colonnes à formater avec le même format.

Suite,

On peut donc garder un classeur xlsx surtout pour les utilisateurs qui ne souhaitent pas exécuter, utiliser des classeurs avec macros.

Comme dit 78chris c'est justement pour identifier les unités dans ces cellules. Car je ne sais pas à l'avance si j'ai des BT, PC, BOX ou KG ou autres du coup je ne peux pas mettre de "conditions spécifiques" en disant trouve moi "BT" par exemple et même si je tente ; il ne reconnaît pas le format de la cellule.

A moins que tu aies réussi à ce que dans une colonne à côté il fait la même chose que la VBA...

Bonjour,

sans VBA, avec une fonction Excel4.
Plus pour l'amusement et le challenge, je pense qu'il vaut mieux rester en vba.

9classeur2.xlsm (41.12 Ko)

eric

RE

sans VBA, avec une fonction Excel4.

Plus pour l'amusement et le challenge, je pense qu'il vaut mieux rester en vba.

J'étais quasi sûr que cela existant en Excel4 mais comme il faut un xlm de toute façon, je n 'ai pas cherché

Merci de l'avoir fait

Bonjour,

sans VBA, avec une fonction Excel4.

Plus pour l'amusement et le challenge, je pense qu'il vaut mieux rester en vba.

5classeur2.xlsm (41.12 Ko)

eric

Bonjour Eric,

J'ai essayé de comprendre ta formule et comment tu as réussi ; mais je ne comprends pas le << @formatCel >> qui se ressemble à la formule VBA précédente avec un module à ajouter. Il y a également une copie d'écran avec =LIRE.CELLULE(7;Feuil1!A2) (voici-dessous)

=SUBSTITUE(STXT(@formatCel;CHERCHE("""";@formatCel)+2;9);"""";"")

Pour plus de clarté ; pourrais-tu me m'expliquer pas à pas ce que je dois faire ?

Je rappelle que dans mon tableau, le format de cellule est inconnue à l'avance, il peut y avoir PC, BOT, SE, G, ML etc. Donc je ne peux pas définir à l'avance "l'unité", le format de la cellule.

Avec le module VBA et la formule : SufixFormat(ma cellule) cela fonctionne très bien. Mais si je comprends bien, avec ta proposition ; il n'est pas nécessaire d'insérer un module dans VBA, avec une "simple" formule d'Excel je peux isoler quand même ?

image

Bonjour,

le @, c'est version excel qui l'ajoute (365 je suppose), il n'y est pas sur les autres versions.
Tu devrais compléter ton profil.

formatCel est un nom à créer car on ne peut pas utiliser une fonction excel4 directement.
Sélectionner la 1ère cellule avec ton format (ici A2) et aller dans Formule / Gestionnaire de nom pour le créer.

Ce n'est pas du vba mais excel le considère quand même comme une macro et tu dois enregistrer en *.xlsm.
Tu ne gagnes donc rien par rapport au vba de ce coté.
eric

Rechercher des sujets similaires à "identifier caractere special"