Dissocier des informations dans une cellule en plusieurs

Bonjour

Je souhaiterais savoir comment faire pour pouvoir dans un tableau EXCEL pour repartir en 3 cellules les informations de dimensions d'un produits quand il est dans un libellé avec d'autres informations?

Exemple : j'ai dans une colonne un libellé Meuble Bois Blanc 120X40X45 Métal à roulettes.

Le but est de pouvoir ne conserver que les dimensions et de les répartir dans 3 cellules différentes, une pour la longueur, une pour la hauteur et une pour la largeur?

Merci de votre aide,

Bonjour,

une solution via une fonction personnalisée

mettre dans une cellule la formule

=dimension(plage,dimension)

où plage est l'adresse d'une cellule et dimension prend la valeur 1 2 ou 3 selon la dimension que l'on veut en retour

si A1 contient Meuble Bois Blanc 120X40X45 Métal à roulettes

=dimension (A1,1) retournera 120

=dimension (A1,2) retournera 40

=dimension (A1,3) retournera 45

Function dimension(r, d)
'r contient la cellule à examiner
'd contient le numéro de la dimension à retourner 1,2 ou 3
    s = Split(UCase(r), " ")
    For i = LBound(s) To UBound(s)
    x = 0
        For j = 1 To Len(s(i)) 'on recherche une chaine qui contient des dimensions
            c = Mid(s(i), j, 1)
            If c = "X" Then
            x = x + 1
            ElseIf Not c Like "#" Then
                Exit For
            End If
        Next j
        If x = 2 Then
            dimension = Split(s(i), "X")(d - 1)
            Exit Function
        End If
    Next i
End Function
12dimension.xlsm (15.92 Ko)

bonjour

un essai au plus simple (façon de parler )

la fonction est matricielle

28killian-13.xlsx (9.05 Ko)

cordialement

re

autre proposition

21killian-13.xlsx (9.26 Ko)

cordialement

Bonsoir,

Merci beaucoup pour vos réponses.

h2so4, ta fonction marche très bien sur ton fichier, mais je n'arrive pas à la faire marcher sur un autre. Saurais-tu me dire comment faire ? Et aussi, la fonction marche avec des nombres sous la forme 1X2X3 mais pas quand il y a un nombre à virgule. Et elle ne marche plus quand il n'y a que deux nombre (sous la forme 1X2). Aurais-tu des solutions ?

tulipe_4, ta fonction marche bien, mais il me faudrait un moyen de mettre chaque nombre d'une dimension en une seule case, et non en une par chiffre. Y aurait-il un moyen ?

Merci

re-bonjour,

fonction adaptée pour permettre les , et les . ainsi que 2 et plus de dimensions (les dimensions sont séparées par un X ou un x)

Function dimension(r, d)
'r contient la cellule à examiner
'd contient le numéro de la dimension à retourner 1,2 ou 3
    s = Split(UCase(Replace(r, ",", ".")), " ")
    For i = LBound(s) To UBound(s)
        x = 0
        For j = 1 To Len(s(i))    'on recherche une chaine qui contient des dimensions
            c = Mid(s(i), j, 1)
            If c = "X" Then
                x = x + 1
            ElseIf c = "." Then
            ElseIf Not c Like "#" Then
                Exit For
            End If
        Next j
        If x >= 1 Then
            If x < d - 1 Then
                dimension = CVErr(xlErrNA)
            Else
                dimension = Split(s(i), "X")(d - 1) + 0
            End If
            Exit Function
        End If
    Next i
End Function

bonjour

voila ; mais privilégie la macro de h2so4

24killian-132.xlsx (10.34 Ko)

cordialement

Super merci beaucoup.

J'ai un dernier soucis sur la recherche V. J'ai découvert cette fonction tout dernièrement.

Quand je cherche a faire ma recherche V, j'ai bien les mêmes valeurs dans les deux tableaux mais il ne trouve pas de correspondance et pour ma part je ne vois pas de différence, comment trouver d'où vient l'erreur,

Merci encore

bonjour

fais un test sur les valeurs que tu penses identiques.

exemple la valeur cherchée en A1, la valeur que tu penses identique en B3 sur la feuille tableau

mets la formule

=A1=tableau!B3

si vrai les 2 valeurs sont identiques et il y a donc un problème avec ta formule

si faux, les 2 valeurs ne sont pas identiques et il y a donc un problème avec la manière dont ces valeurs sont écrites (caractères cachés, espace, ...)

Merci j'ai trouvé la solution, j'avais des espaces cachés...

Rechercher des sujets similaires à "dissocier informations"