Récupérer format personnalisé

Bonjour,

Avec votre aide, je souhaite récupérer les formats personnalisés sous excel 2010, en version anglaise. Je m'explique

En faisant l'extraction d'un rapport sous business object, dans la colonne volume, je récupère des chiffres dont l'unité varie en fonction du conditionnement. Par exemple, je verrais 10 BOX mais quand je rentre dans la cellule, je ne vois que le chiffre 10.

Le format personnalisé est le suivant : # ##0" BOX";-# ##0" BOX";# ##0;@.

On peut avoir d'autres unités comme : L (litre), KG (kilogramme), EA (each), CAR (carton), etc.

Connaissez-vous une astuce pour extraire l'unité, idéalement sans passer par VBA car mon niveau est très limité dans ce domaine ?

Merci d'avance!

Sébastien

Bonjour,

Voir mes 'possibilités' avec les formats personnalisés...

Je n'ai pas tout compris à ton énoncé.

A te relire certainement.

Cdlt.

Merci pour votre réponse très rapide et veuillez m'excuser si je n'ai pas été assez clair.

Je cherche exactement à faire ce que vous proposez dans l'onglet VBA. C'est à dire à séparer le chiffre de l'unité.

Donc si on a 10 BOX en A1, obtenir 10 en B1 et BOX en C1.

Est-il possible de le faire sans utiliser de macro ? Comment procéderiez-vous avec cette fois-ci une liste comme dans le fichier excel que je vous joins à ce message ?

Encore merci!

Sébastien

22extract.xlsx (14.38 Ko)

Re,

Je privilégie une solution VBA car elle correspond à ton attente, plus simple et moins gourmande (pas de formule).

Maintenant, il y aura peut-être une autre personne pour te donner une solution avec formules.

Attendons de voir

Cdlt.

46extract.xlsm (21.87 Ko)
Option Explicit
Public Sub DecomposerCelluleNumérique()
'Ctrl + w pour démarrer la procédure
Dim ws As Worksheet, _
    derLigne As Long, i As Long

    Application.ScreenUpdating = False
    Set ws = Worksheets("Sheet1")
    With ws
        .Range("C:D").Clear
        .Cells(1, 3) = "Qty"
        .Cells(1, 4) = "Unit"
        derLigne = .Range("A" & Rows.Count).End(xlUp).Row
        For i = 2 To derLigne
            .Cells(i, 3) = .Cells(i, 2)
            .Cells(i, 3).NumberFormat = "# ##0"
            .Cells(i, 4) = LTrim(Split(.Cells(i, 2).NumberFormat, """")(1))
        Next i
    End With

    Set ws = Nothing

End Sub
Rechercher des sujets similaires à "recuperer format personnalise"