Macro EXCEL

Résolu
jeveuxmontacos Messages postés 1 Statut Membre -  
 Jeveuxmontacos -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Un autre essai valable UNIQUEMENT lorsque les 4 champs numériques sont au format avec 2 chiffres après la virgule
    https://www.cjoint.com/?3Djvv5KAvUg

    bonne suite
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour jeveuxmontacos, ccm81,

    Je me suis amusé aussi avec ton classeur :

    https://www.cjoint.com/?CDjxcVZseJY
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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. ccm81 Messages postés 11033 Statut Membre 2 434
       
      Salut gbinforme et Éric

      Jolie la solution!

      Bonne journée à tous
      0
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jeveuxmontacos
     
    Bonjour,

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

    Merci à tous pour vos réponses.

    Avec tout mon amour,

    see ya !
    0