Nombre entre lettre

salut tout le monde,

je cherche une formule ou code vba pour .....

c'est compliquer à expliquer voici un exemple...

la cellule A1 contient : G0G90M23Z56Y38.S355

Et le résultat chercher est

en B1 : GOG90

en C1 : M23

en D1: Z56

en E1 : Y38.

en F1: S355

L'ordre n'a pas vraiment d'importance...Le tout est de ressortir chaque lettre avec la valeur qui la suit et si il y a plusieurs fois la même lettre , le résultat doit être regroupé dans la même cellule. exemple B1

Le . fait partie du nombre et doit impérativement apparaître. exemple E1

merci d'avance de votre aide.

Bonjour,
Dans la partie "Fonctions Excel" du site il y a tout ce qu'il faut pour trouver la solution.
https://www.excel-pratique.com/fr/fonctions/excel-texte

bonjour,

une proposition via une fonction personnalisée :

code à mettre dans un module standard.

Function splitnombre(a, Optional n = 0)
    ReDim r(Len(a))
    ptr = 0
    chiffretrouve = False
    For i = 1 To Len(a)
        c = Mid(a, i, 1)
        If i = 1 Then lettre = c
        If c Like "[0-9.]" Then
            chiffretrouve = True
        ElseIf chiffretrouve Then
        If c <> lettre Then ptr = ptr + 1
            chiffretrouve = False
            lettre = c
        End If
            r(ptr) = r(ptr) + c
    Next i
    ReDim Preserve r(ptr - 1)
    If n = 0 Then splitnombre = r Else splitnombre = r(n - 1)
End Function

utilisation de la fonction :

=splitnombre(texte,paramètre optionel)

texte : le texte à décomposer

paramètre : par défaut toutes les zones sont décomposées et affichées dans les cellules suivantes, si présent le résultat de la nième décomposition est affiché.

Bonjour

Un fichier est TOUJOURS le bienvenu

Ci joint ma solution

19slygan.xlsm (18.57 Ko)

A+ François

Bonjour Slygan, le Fil,

@H2So4,

Un vote d'encouragement mais si tu changes G90 par Y90, ce dernier ne sera pas collé avec Y38.

Il me semble que Slygan regroupe aussi sur les lettres similaires.

bonjour,

Il me semble que Slygan regroupe aussi sur les lettres similaires.

En fait j'avais compris, qu'il fallait regrouper les lettres consécutives, ton interprétation semble correcte. Attendons la réaction de Slygan.

déjà merci pour vos réponses...

concernant les precisions demandés :

effectivement il faut regrouper les lettres .

comme indiqué dans mon exemple en B1 .

même si le texte serait G0M23Z56G90Y38.S355

B1 serai G0G90

re,

concernant les precisions demandés :

effectivement il faut regrouper les lettres .

dans ce cas, ...

Function splitnombre(a)
    Set dict = CreateObject("scripting.dictionary")
    chiffretrouve = False
    lettre = ""
    For i = 1 To Len(a)
        c = Mid(a, i, 1)
        If lettre = "" Then lettre = c
        If c Like "[0-9.]" Then
            chiffretrouve = True
        ElseIf chiffretrouve Then
            chiffretrouve = False
            lettre = c
        End If
        dict(lettre) = dict(lettre) + c
    Next i
    splitnombre = dict.items
End Function

Bonjour à tous !

Une approche via Power Query ?

h2so4,

je n'arrive pas à faire fonctionner ton code je n'ai jamais utiliser les "function"... desolé.

JFL,

la version excel utilisé actuellement est de 2007; impossible d'utiliser powerquery

fanfan,

le code proposé n'apporte pas le résultat souhaité; il ne regroupe pas les lettres

Bonjour

Ci joint ma solution

13slygan.xlsm (19.31 Ko)

A+ François

bonjour,

je n'arrive pas à faire fonctionner ton code je n'ai jamais utiliser les "function"... desolé.

Si tu travailles en excel tu en utilises probablement tout le temps.

Voici un fichier avec la fonction installée dans un module standard (condition pour pouvoir l'utiliser). Ensuite elle est disponible comme n'importe quelle fonction excel.

ps. tu nous indiques dans une réponse que ta version est 2007, mais dans ton profil tu indiques 2019 ?

En 2007, cette fonction nécessite une validation matricielle sur l'ensemble des cellules qui peuvent recevoir la réponse.

Bonjour à tous !

JFL,

la version excel utilisé actuellement est de 2007; impossible d'utiliser powerquery

Votre profil indique Excel 2019 et non 2007.....

Vous exprimez un besoin en nous communicant des clés erronées....

je viens de travailler sur mon fichier et voila donc un exemple plus concret de ce que je cherche

17forumg43.xlsx (12.16 Ko)

les données sont en colonne C et les colonnes d'extractions sont nommées G H Z et M

JFL et H2so4 ,

oui désolé pour cet oubli.

ma version pro et ma version perso ne sont pas les mêmes.

re,

une proposition via une fonction personnalisée.

18forumg43.xlsm (19.98 Ko)

super h2so4.... c'est nickel.

merci beaucoup.

Rechercher des sujets similaires à "nombre entre lettre"