Macro EXCEL

Résolu
Bonjour à tous !

Please Help!

Je souhaiterai créer une macro sur pour extraire des données d'une cellule et les répartir d'en différentes cellules.

Je vous met en lien un extrait de ma base de données avec la première ligne faite (manuellement) pour vous montrez ce à quoi je m'attends.

http://cjoint.com/data3/3DjqmXi3Gsi.htm

Dites moi si vous avez une solution ou bien tout simplement si vous pensez que cela est réalisable ^^

Merci d'avance!

5 réponses

  1. Bonjour

    une proposition, avec un problème lorsque le dernier caractère du "nom" est numérique (ces lignes seront à traiter à la main avant/après l'exécution de la macro)
    https://www.cjoint.com/?3Djr4tCR7MQ

    bonne suite
    1
    1. Contributeur
      Bonjour jeveuxmontacos, ccm81,

      Je me suis amusé aussi avec ton classeur :

      https://www.cjoint.com/?CDjxcVZseJY
      0
      1. Contributeur
        Salut à tous,

        gb, un blème sur mon excel avec le . en séparateur décimal.
        Au Case 3 il n'aime pas du tout :
        col = col + 1: Cells(lig, col).Value = tbl(idx) * 1: col = col + 1
        à cause du tbl(idx) * 1 => "0,06"*1.

        Avec ça ça passe :
                Select Case col
                    Case 2
                        Cells(lig, col).Value = tbl(idx): col = col + 1
                    Case 3
                        If InStr(1, tbl(idx), ",") = 0 Then
                            Cells(lig, col).Value = Cells(lig, col).Value & tbl(idx) & " "
                        Else
                            col = col + 1: Cells(lig, col).Value = IIf(Application.DecimalSeparator = ".", Replace(tbl(idx), ",", "."), tbl(idx)) * 1: col = col + 1
                        End If
                    Case 5, 7
                        Cells(lig, col).Value = IIf(Application.DecimalSeparator = ".", Replace(tbl(idx), ",", "."), tbl(idx)) * 1: col = col + 1
                    Case 6
                        If InStr(1, tbl(idx), ",") = 0 Then
                            Cells(lig, col).Value = Cells(lig, col).Value & tbl(idx)
                        Else
                            Cells(lig, col).Value = (Cells(lig, col).Value & IIf(Application.DecimalSeparator = ".", Replace(tbl(idx), ",", "."), tbl(idx))) * 1: col = col + 1
                        End If
                End Select

        Des fois que le demandeur soit dans le même cas que moi.

        eric
        0
      2. Contributeur
        Salut Éric,

        Quelle idée de fonctionner en étranger, restons français ;-)

        Bon d'accord, pour VBA, je fais un gros effort de traduire en charabia mais sinon azerty sur toute la ligne :)

        Merci pour ta traduction, tu la mettras sur la facture fin de mois...

        Bonne nuit.
        0
      3. Contributeur
        Autant je suis intransigeant sur les accents même les ¨, autant j'ai un faible pour le point décimal.
        C'est ma seule concession à la culture anglo-américaine.
        Good night ;-)
        eric
        0
      4. Contributeur
        Salut Éric,

        Presque intransigeant sur les accents car tu l'as oublié sur le pseudo ... mais tu as tout de même mis tes 3 points (décimaux) ;-)
        Heureusement que je le mets sur la majuscule...
        0
      5. Salut gbinforme et Éric

        Jolie la solution!

        Bonne journée à tous
        0
    2. Contributeur
      Bonjour,

      Comme nous n'avons pas de nouvelles, je me suis amusé à mixer la solution de ccm81 et la mienne complétée par la remarque du point décimal d'Éric :

      https://www.cjoint.com/?CDlksD9OsXW
      0
      1. Contributeur
        Salut gb,

        Je ne sais pas ce que j'avais fumé hier soir mais le complément que je t'avais donné était erroné.
        Disons qu'il était bon dans ma config d'hier soir mais pas dans celle de ce matin.
        Utiliser Application.International(xlDecimalSeparator) et non Application.DecimalSeparator (qui le séparateur d'excel qu'on active rarement, et non celui des paramètres régionaux)
        Sorry ;-)

        eric
        0
    3. Bonjour,

      Personnellement vos macros ont bien marchés dans mon cas,

      Merci à tous pour vos réponses.

      Avec tout mon amour,

      see ya !
      0