XL 2019 Extraire une chaîne de caractère après un format (chiffres)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

niiroby

XLDnaute Nouveau
Bonjour à tous,

J'ai des intitulés composés de chaines de caractères séparées par un format au milieu.
Par exemple EXCEL 20x151 DOWNLOADS.

Je souhaiterais séparer EXCEL 20x151 et DOWNLOADS dans des cellules séparées.
A savoir que les chaines de caractères sont à longueur variable avec un nombre d'espace variable.
Les formats sont également à format variable.
Un résultat en VBA me conviendrait également sans problème.

J'ai fais quelques tentatives que vous pourrez retrouver dans le fichier joint.
Le problème est plus compréhensible dans mon fichier.

Existe-t-il vraiment une solution à mon problème ?

Je vous remercie d'avance pour votre aide.

Cordialement,
 

Pièces jointes

Bonjour @niiroby, Mapomme,
Un essai avec une fonction perso :
VB:
Function Découpe(Chaine$, N%)
Dim i%, j%, tablo
tablo = Split(Chaine, " "): j = 0
For i = 0 To UBound(tablo)
    If Len(tablo(i)) > 0 Then
        tablo(j) = tablo(i)
        j = j + 1
    End If
Next i
If N = 1 Then
    For i = 0 To j - 3
        Découpe = Découpe & tablo(i) & " "
    Next i
Else
    For i = j - 2 To j - 1
        Découpe = Découpe & tablo(i) & " "
    Next i
End If
End Function
 

Pièces jointes

Merci à toi mapomme !

C'est tout à fait parfait !
J'ai juste modifié par LIGNE($1:99).

Aurais-tu une solution pour pouvoir intégrer cette formule en VBA ?

Je vais chercher de mon côté je pars là dessus pour l'instant :

VB:
Cells.Find(What:="nom_pro").Select
ActiveCell.Offset(2, 0).Select
Selection.FormulaArray = "=GAUCHE(Feuil1!D2;MAX(SI(ESTNUM(1*STXT(Feuil1!D2;LIGNE($1:99);1));LIGNE($1:99);"")))"

Je pense qu'il me reste à traduire les formules.

Encore merci pour ton aide !

Cordialement.
 
Merci à tous j'ai regardé vos solutions elles sont fonctionnelles !

Je suis tout de même parti sur ta solution mapomme qui ressemble à ça maintenant :

Selection.FormulaArray = "=LEFT(Feuil1!R[-2]C[1],MAX(IF(ISNUMBER(1*MID(Feuil1!R[-2]C[1],ROW(R1:R99),1)),ROW(R1:R99),"""")))"

Encore merci à tous pour votre aide, vous êtes au top.
(je ne sais pas trop comment mettre en résolu)

Bonne journée,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour