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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour jeveuxmontacos, ccm81,

    Je me suis amusé aussi avec ton classeur :

    https://www.cjoint.com/?CDjxcVZseJY
    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
    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.
    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
    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...
    5. Salut gbinforme et Éric

      Jolie la solution!

      Bonne journée à tous
  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
    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
  3. Bonjour,

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

    Merci à tous pour vos réponses.

    Avec tout mon amour,

    see ya !