Formule selectionner caracteres

Bonjour à tous,

Je reviens ici car j'ai une formule qui fonctionne pas.

Je veux sélectionner selon le nombre de mots ( 1, 2 ou 3 ) en A toujours le même nbre de caractères soit 4.(COLONNE N)

Si 3 mots alors 1er mot 2 caractères

2ème mot 1 caractère

3ème mot 1 caractère

Donc total 4 caractères. Cela fonctionne

Idem si présence en A3 d'un mot alors en M3 4 caractères OK

Mais si 2 mots ma formule ne fonctionne pas ,il faut qu'elle me sélectionne 1er mot 2 caractères et 2mots 2 caractères.

Voir dossier ci joint

Si vous pouvez m'éclairer

Merci

13nbre-caractere.xlsx (11.10 Ko)

Bonsoir,

Une proposition avec une fonction personnalisée.

Cdlt.

Public Function DEMO(sText As String) As String
Dim tbl As Variant, x As String

    tbl = Split(Trim(sText), " ")

    Select Case UBound(tbl)
        Case 0
            x = Left(sText, 4)
        Case 1
            x = Left(tbl(0), 2) & Left(tbl(1), 2)
        Case 2
            x = Left(tbl(0), 2) & Left(tbl(1), 1) & Left(tbl(2), 1)
    End Select

    DEMO = UCase(x)

End Function
10nbre-caractere.zip (11.62 Ko)

Bonjour,

Voilà une formule :

=CHOISIR(SOMMEPROD(--(STXT(SUPPRESPACE(A1);LIGNE(INDIRECT("1:"&NBCAR(SUPPRESPACE(A1))));1)=" "))+1;GAUCHE(SUPPRESPACE(A1);4);GAUCHE(SUPPRESPACE(A1);2)&STXT(SUPPRESPACE(A1);CHERCHE(" ";SUPPRESPACE(A1))+1;2);GAUCHE(SUPPRESPACE(A1);2)&STXT(SUPPRESPACE(A1);CHERCHE(" ";SUPPRESPACE(A1))+1;1)&STXT(SUPPRESPACE(A1);CHERCHE(" ";SUBSTITUE(SUPPRESPACE(A1);" ";"x";1))+1;1))

Un peu longue à mon goût, mais déjà les SUPPRESPACE systématiques ont tendance à allonger... On ferait plus court avec des calculs intermédiaires mais toujours plus intéressant de concentrer dans une seule formule.

Il reste sinon la solution de la la fonction perso (j'opterais sans doute pour, non sans avoir vérifiée que la formule pouvait être établie avec les fonctions classiques...)

Cordialement

Ferrand

Merci à vous jean éric et Ferrand, j'ai testé cela fonctionne.

Rechercher des sujets similaires à "formule selectionner caracteres"